From 0b3d062ed12ea62e2cd8775f80b1b117ca214d80 Mon Sep 17 00:00:00 2001 From: Marcel Raddatz Date: Fri, 10 Apr 2026 16:28:39 +0200 Subject: [PATCH] =?UTF-8?q?feat(settings):=20add=20=E2=86=90=20Einstellung?= =?UTF-8?q?en=20back-link=20on=20D3=20staples=20page=20when=20ctx=3Dsettin?= =?UTF-8?q?gs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../src/routes/household/staples/+page.svelte | 3 +++ .../src/routes/household/staples/page.test.ts | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/frontend/src/routes/household/staples/+page.svelte b/frontend/src/routes/household/staples/+page.svelte index 5db2188..7714ffa 100644 --- a/frontend/src/routes/household/staples/+page.svelte +++ b/frontend/src/routes/household/staples/+page.svelte @@ -45,6 +45,9 @@ {:else}
+ {#if data.ctx === 'settings'} + ← Einstellungen + {/if}

Vorräte

diff --git a/frontend/src/routes/household/staples/page.test.ts b/frontend/src/routes/household/staples/page.test.ts index 873bbc9..ecdb05c 100644 --- a/frontend/src/routes/household/staples/page.test.ts +++ b/frontend/src/routes/household/staples/page.test.ts @@ -79,4 +79,31 @@ describe('staples page — settings context (no ctx)', () => { render(Page, { props: { data: { categories: mockCategories, ctx: null } } }); expect(screen.getByRole('heading', { name: /vorräte/i })).toBeInTheDocument(); }); + + it('does not render back-link when ctx is null', () => { + render(Page, { props: { data: { categories: mockCategories, ctx: null } } }); + expect(screen.queryByRole('link', { name: /einstellungen/i })).not.toBeInTheDocument(); + }); +}); + +describe('staples page — ctx=settings (D3)', () => { + beforeEach(() => { + vi.stubGlobal('fetch', vi.fn().mockResolvedValue({ ok: true })); + }); + + afterEach(() => { + vi.unstubAllGlobals(); + }); + + it('renders back-link "← Einstellungen" when ctx=settings', () => { + render(Page, { props: { data: { categories: mockCategories, ctx: 'settings' } } }); + const backLink = screen.getByRole('link', { name: /← einstellungen/i }); + expect(backLink).toBeInTheDocument(); + }); + + it('back-link points to /settings', () => { + render(Page, { props: { data: { categories: mockCategories, ctx: 'settings' } } }); + const backLink = screen.getByRole('link', { name: /← einstellungen/i }); + expect(backLink).toHaveAttribute('href', '/settings'); + }); });