From df66cf6605a21c9785a9630e5a0bd13b1f1d0e1d Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 12 Jun 2026 11:48:02 +0200 Subject: [PATCH] test(GeschichteListRow): add failing tests for DRAFT status badge RED: component has no draft badge yet. Co-Authored-By: Claude Sonnet 4.6 --- .../GeschichteListRow.svelte.spec.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/frontend/src/lib/geschichte/GeschichteListRow.svelte.spec.ts b/frontend/src/lib/geschichte/GeschichteListRow.svelte.spec.ts index 52babd9c..4c430716 100644 --- a/frontend/src/lib/geschichte/GeschichteListRow.svelte.spec.ts +++ b/frontend/src/lib/geschichte/GeschichteListRow.svelte.spec.ts @@ -91,4 +91,34 @@ describe('GeschichteListRow', () => { render(GeschichteListRow, { props: { geschichte: baseRow() } }); expect(document.body.textContent).toContain('Anna Schmidt'); }); + + it('shows no draft badge for PUBLISHED stories', async () => { + render(GeschichteListRow, { props: { geschichte: baseRow({ status: 'PUBLISHED' }) } }); + expect(document.querySelector('[data-testid="draft-badge"]')).toBeNull(); + expect(document.querySelector('[data-testid="draft-badge-mobile"]')).toBeNull(); + }); + + it('shows desktop draft badge for DRAFT stories', async () => { + render(GeschichteListRow, { props: { geschichte: baseRow({ status: 'DRAFT' }) } }); + const badge = document.querySelector('[data-testid="draft-badge"]'); + expect(badge).not.toBeNull(); + }); + + it('shows mobile draft badge for DRAFT stories', async () => { + render(GeschichteListRow, { props: { geschichte: baseRow({ status: 'DRAFT' }) } }); + const badge = document.querySelector('[data-testid="draft-badge-mobile"]'); + expect(badge).not.toBeNull(); + }); + + it('draft badge is a plain ', async () => { + render(GeschichteListRow, { props: { geschichte: baseRow({ status: 'DRAFT' }) } }); + const badge = document.querySelector('[data-testid="draft-badge"]'); + expect(badge?.tagName.toLowerCase()).toBe('span'); + }); + + it('draft badge uses text-xs label size', async () => { + render(GeschichteListRow, { props: { geschichte: baseRow({ status: 'DRAFT' }) } }); + const badge = document.querySelector('[data-testid="draft-badge"]'); + expect(badge!.className).toContain('text-xs'); + }); });