diff --git a/backend/src/test/java/org/raddatz/familienarchiv/dashboard/DashboardServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/dashboard/DashboardServiceTest.java index d453f2e7..e7ceb6bd 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/dashboard/DashboardServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/dashboard/DashboardServiceTest.java @@ -6,7 +6,9 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.raddatz.familienarchiv.audit.ActivityFeedRow; +import org.raddatz.familienarchiv.audit.AuditKind; import org.raddatz.familienarchiv.audit.AuditLogQueryService; +import org.raddatz.familienarchiv.audit.PulseStatsRow; import org.raddatz.familienarchiv.model.AppUser; import org.raddatz.familienarchiv.model.Document; import org.raddatz.familienarchiv.model.TranscriptionBlock; @@ -16,13 +18,17 @@ import org.raddatz.familienarchiv.service.TranscriptionService; import org.raddatz.familienarchiv.service.UserService; import java.time.Instant; +import java.time.OffsetDateTime; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; @@ -158,6 +164,28 @@ class DashboardServiceTest { verify(commentService, never()).findAnnotationIdsByIds(anyList()); } + // ─── getPulse — always uses full ROLLUP_ELIGIBLE set ───────────────────── + + @Test + void pulse_uses_all_rollup_eligible_kinds_never_calls_kinds_filtered_overload() { + UUID userId = UUID.randomUUID(); + PulseStatsRow stats = new PulseStatsRow() { + public long getPages() { return 0; } + public long getAnnotated() { return 0; } + public long getTranscribed() { return 0; } + public long getUploaded() { return 0; } + public long getYourPages() { return 0; } + }; + when(auditLogQueryService.getPulseStats(any(OffsetDateTime.class), any(UUID.class))) + .thenReturn(stats); + when(auditLogQueryService.findActivityFeed(userId, 50)).thenReturn(List.of()); + + dashboardService.getPulse(userId); + + verify(auditLogQueryService).findActivityFeed(userId, 50); + verify(auditLogQueryService, never()).findActivityFeed(any(UUID.class), anyInt(), any(Set.class)); + } + private ActivityFeedRow mockFeedRow(UUID docId, String kind) { return mockFeedRow(docId, kind, null); }