As a user I want the dashboard resume strip to show the actual document thumbnail so I recognize what I was working on at a glance #314
@@ -82,7 +82,7 @@ public class DashboardService {
|
|||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
return new DashboardResumeDTO(docId, doc.getTitle(), caption, excerpt,
|
return new DashboardResumeDTO(docId, doc.getTitle(), caption, excerpt,
|
||||||
totalBlocks, pct, null, collaborators);
|
totalBlocks, pct, doc.getThumbnailUrl(), collaborators);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DashboardPulseDTO getPulse(UUID userId) {
|
public DashboardPulseDTO getPulse(UUID userId) {
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import org.raddatz.familienarchiv.service.TranscriptionService;
|
|||||||
import org.raddatz.familienarchiv.service.UserService;
|
import org.raddatz.familienarchiv.service.UserService;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -45,6 +46,31 @@ class DashboardServiceTest {
|
|||||||
|
|
||||||
@InjectMocks DashboardService dashboardService;
|
@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) ─────────────────────────────
|
// ─── toActorDTO (via getResume collaborators) ─────────────────────────────
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user