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'); + }); });