diff --git a/backend/src/main/java/org/raddatz/familienarchiv/dashboard/DashboardService.java b/backend/src/main/java/org/raddatz/familienarchiv/dashboard/DashboardService.java index 054ea91b..0e5203b2 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/dashboard/DashboardService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/dashboard/DashboardService.java @@ -82,7 +82,7 @@ public class DashboardService { .toList(); return new DashboardResumeDTO(docId, doc.getTitle(), caption, excerpt, - totalBlocks, pct, null, collaborators); + totalBlocks, pct, doc.getThumbnailUrl(), collaborators); } public DashboardPulseDTO getPulse(UUID userId) { 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 19a20e51..d9df35cc 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/dashboard/DashboardServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/dashboard/DashboardServiceTest.java @@ -18,6 +18,7 @@ import org.raddatz.familienarchiv.service.TranscriptionService; import org.raddatz.familienarchiv.service.UserService; import java.time.Instant; +import java.time.LocalDateTime; import java.time.OffsetDateTime; import java.util.HashSet; import java.util.List; @@ -45,6 +46,31 @@ class DashboardServiceTest { @InjectMocks DashboardService dashboardService; + // ─── getResume wires thumbnailUrl from Document ─────────────────────────── + + @Test + void getResume_populatesThumbnailUrl_fromDocument() { + UUID userId = UUID.randomUUID(); + UUID docId = UUID.fromString("12345678-aaaa-bbbb-cccc-1234567890ab"); + + Document doc = Document.builder() + .id(docId).title("Brief").originalFilename("brief.pdf") + .thumbnailKey("thumbnails/" + docId + ".jpg") + .thumbnailGeneratedAt(LocalDateTime.of(2026, 4, 23, 9, 0, 0)) + .receivers(new HashSet<>()) + .build(); + + when(auditLogQueryService.findMostRecentDocumentForUser(userId)).thenReturn(Optional.of(docId)); + when(documentService.getDocumentById(docId)).thenReturn(doc); + when(transcriptionService.listBlocks(docId)).thenReturn(List.of()); + + DashboardResumeDTO result = dashboardService.getResume(userId); + + assertThat(result).isNotNull(); + assertThat(result.thumbnailUrl()).isEqualTo(doc.getThumbnailUrl()); + assertThat(result.thumbnailUrl()).startsWith("/api/documents/" + docId + "/thumbnail?v="); + } + // ─── toActorDTO (via getResume collaborators) ───────────────────────────── @Test