feat(documents): badge undated rows instead of a bare em-dash
DocumentRow rendered a bare em-dash for null-dated letters — a glyph a
screen reader announces as nothing. Both breakpoints now render the single
DocumentDate component unconditionally (no {#if}/—/{:else}), so the cue
cannot drift; its unknown state is a neutral metadata chip ("Datum
unbekannt", text-ink-3, ≥4.5:1 both themes) with a non-color calendar glyph,
never red/amber. Present dates render at honest precision via
formatDocumentDate ("Juni 1916", not a fabricated day).
Refs #668
This commit is contained in:
@@ -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', () => {
|
||||
|
||||
Reference in New Issue
Block a user