diff --git a/frontend/src/lib/document/DocumentDate.svelte b/frontend/src/lib/document/DocumentDate.svelte index a3539c31..937b5f7c 100644 --- a/frontend/src/lib/document/DocumentDate.svelte +++ b/frontend/src/lib/document/DocumentDate.svelte @@ -28,13 +28,21 @@ const showRawLine = $derived( - - {#if isUnknown} - + {#if isUnknown} + + - {/if} - {label} - + {label} + + {:else} + + {label} + + {/if} {#if showRawLine} - {#if doc.documentDate} - - {:else} - — - {/if} +
diff --git a/frontend/src/lib/document/DocumentRow.svelte.spec.ts b/frontend/src/lib/document/DocumentRow.svelte.spec.ts index 9511edc0..bb9609c2 100644 --- a/frontend/src/lib/document/DocumentRow.svelte.spec.ts +++ b/frontend/src/lib/document/DocumentRow.svelte.spec.ts @@ -73,6 +73,35 @@ describe('DocumentRow – title', () => { }); }); +// ─── Date rendering (#668) ────────────────────────────────────────────────── + +describe('DocumentRow – date rendering', () => { + it('renders a "Datum unbekannt" badge for an undated document', async () => { + const item = makeItem({ documentDate: undefined, metaDatePrecision: 'UNKNOWN' }); + render(DocumentRow, { item }); + // The badge text appears (once per breakpoint block). + await expect.element(page.getByText('Datum unbekannt').first()).toBeInTheDocument(); + }); + + it('does not render a bare em-dash for an undated document', async () => { + const item = makeItem({ documentDate: undefined, metaDatePrecision: 'UNKNOWN' }); + render(DocumentRow, { item }); + await expect.element(page.getByText('—', { exact: true }).first()).not.toBeInTheDocument(); + }); + + it('renders the full date for a day-precision document', async () => { + const item = makeItem({ documentDate: '1943-12-24', metaDatePrecision: 'DAY' }); + render(DocumentRow, { item }); + await expect.element(page.getByText(/24\. Dezember 1943/).first()).toBeInTheDocument(); + }); + + it('renders month precision honestly without fabricating a day', async () => { + const item = makeItem({ documentDate: '1916-06-01', metaDatePrecision: 'MONTH' }); + render(DocumentRow, { item }); + await expect.element(page.getByText(/Juni 1916/).first()).toBeInTheDocument(); + }); +}); + // ─── Snippet ────────────────────────────────────────────────────────────────── describe('DocumentRow – snippet', () => {