From 593a6c8a38a2f124e33e0a2d24460b0407781f24 Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 15 Apr 2026 09:37:19 +0200 Subject: [PATCH] test+fix(docs): correct fallbackLabel when sort prop is omitted Add failing test for DATE-sort + undated doc showing "Undatiert" fallback label, then fix DocumentList by null-coalescing sort before comparison ((sort ?? 'DATE') === 'DATE'). Test uses one dated + one undated doc to produce two groups and trigger GroupDivider rendering. Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/routes/DocumentList.svelte | 4 +++- frontend/src/routes/DocumentList.svelte.spec.ts | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/frontend/src/routes/DocumentList.svelte b/frontend/src/routes/DocumentList.svelte index 4a16b6eb..78aaa09e 100644 --- a/frontend/src/routes/DocumentList.svelte +++ b/frontend/src/routes/DocumentList.svelte @@ -30,7 +30,9 @@ let { sort?: string; } = $props(); -const fallbackLabel = $derived(sort === 'DATE' ? m.docs_group_undated() : m.docs_group_unknown()); +const fallbackLabel = $derived( + (sort ?? 'DATE') === 'DATE' ? m.docs_group_undated() : m.docs_group_unknown() +); const groupedDocuments = $derived.by(() => groupDocuments(documents, sort ?? 'DATE', fallbackLabel) ); diff --git a/frontend/src/routes/DocumentList.svelte.spec.ts b/frontend/src/routes/DocumentList.svelte.spec.ts index 1d7d728b..224501e5 100644 --- a/frontend/src/routes/DocumentList.svelte.spec.ts +++ b/frontend/src/routes/DocumentList.svelte.spec.ts @@ -90,6 +90,15 @@ describe('DocumentList – group headers', () => { await expect.element(page.getByTestId('group-divider')).not.toBeInTheDocument(); }); + it('shows Undatiert fallback label when sort is undefined and doc has no date', async () => { + const documents = [ + makeDoc({ id: '1', documentDate: '1938-01-01' }), + makeDoc({ id: '2', documentDate: null }) + ]; + render(DocumentList, { ...baseProps, documents, total: 2 }); // sort omitted — defaults to DATE grouping + await expect.element(page.getByText(/UNDATIERT/i)).toBeInTheDocument(); + }); + it('a doc with two receivers appears in both receiver groups', async () => { const documents = [ makeDoc({