From cb87695834d3c65ec8a7d7073a56d10fbc985cda Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 12 Jun 2026 11:51:04 +0200 Subject: [PATCH] =?UTF-8?q?test(geschichten/page):=20add=20failing=20tests?= =?UTF-8?q?=20for=20Entw=C3=BCrfe=20section?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RED: page does not yet render a drafts section. Co-Authored-By: Claude Sonnet 4.6 --- .../routes/geschichten/page.svelte.spec.ts | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/frontend/src/routes/geschichten/page.svelte.spec.ts b/frontend/src/routes/geschichten/page.svelte.spec.ts index a5caab98..42604a9e 100644 --- a/frontend/src/routes/geschichten/page.svelte.spec.ts +++ b/frontend/src/routes/geschichten/page.svelte.spec.ts @@ -350,3 +350,46 @@ describe('geschichten page — multi-person filter chips', () => { expect(addEl.className).toContain('h-11'); }); }); + +// ─── Entwürfe section ───────────────────────────────────────────────────────── + +describe('geschichten page — Entwürfe section', () => { + const draft = () => + ({ + id: 'draft-1', + title: 'Mein Entwurf', + body: '

test

', + type: 'STORY', + status: 'DRAFT', + author: { firstName: 'Max', lastName: 'Muster' }, + publishedAt: null + }) as unknown as PageData['geschichten'][0]; + + it('Entwürfe section is hidden when drafts array is empty', async () => { + render(Page, { data: makeData({ drafts: [] }) }); + const heading = Array.from(document.querySelectorAll('h2')).find( + (h) => h.textContent?.includes('Entwürfe') || h.textContent?.includes('Drafts') + ); + expect(heading).toBeUndefined(); + }); + + it('Entwürfe section is visible when drafts are present', async () => { + render(Page, { data: makeData({ drafts: [draft()] as PageData['geschichten'] }) }); + const heading = Array.from(document.querySelectorAll('h2')).find( + (h) => h.textContent?.includes('Entwürfe') || h.textContent?.includes('Drafts') + ); + expect(heading).not.toBeUndefined(); + }); + + it('renders a row for each draft story', async () => { + render(Page, { data: makeData({ drafts: [draft()] as PageData['geschichten'] }) }); + const link = document.querySelector('a[href="/geschichten/draft-1"]'); + expect(link).not.toBeNull(); + }); + + it('draft row shows the draft badge', async () => { + render(Page, { data: makeData({ drafts: [draft()] as PageData['geschichten'] }) }); + const badge = document.querySelector('[data-testid="draft-badge"]'); + expect(badge).not.toBeNull(); + }); +});