From 6e559d9f9d1d2c46b202287424387403479461aa Mon Sep 17 00:00:00 2001 From: Marcel Raddatz Date: Fri, 10 Apr 2026 16:57:48 +0200 Subject: [PATCH] =?UTF-8?q?refactor(staples):=20remove=20ctx=3Dsettings=20?= =?UTF-8?q?=E2=80=94=20default=20view=20is=20settings,=20only=20ctx=3Donbo?= =?UTF-8?q?arding=20differs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../(app)/household/staples/+page.svelte | 4 +-- .../(app)/household/staples/page.test.ts | 34 ++++--------------- .../src/routes/(app)/settings/+page.svelte | 2 +- .../src/routes/(app)/settings/page.test.ts | 4 +-- 4 files changed, 12 insertions(+), 32 deletions(-) diff --git a/frontend/src/routes/(app)/household/staples/+page.svelte b/frontend/src/routes/(app)/household/staples/+page.svelte index 2dca2f2..6d896b8 100644 --- a/frontend/src/routes/(app)/household/staples/+page.svelte +++ b/frontend/src/routes/(app)/household/staples/+page.svelte @@ -45,12 +45,12 @@ {:else}
- {#if data.ctx === 'settings'} + {#if !isOnboarding} ← Einstellungen {/if}

Vorräte

- {#if data.ctx === 'settings'} + {#if !isOnboarding}

Änderungen werden automatisch gespeichert. Gilt ab der nächsten Einkaufsliste.

{/if}
diff --git a/frontend/src/routes/(app)/household/staples/page.test.ts b/frontend/src/routes/(app)/household/staples/page.test.ts index d4e6080..855954c 100644 --- a/frontend/src/routes/(app)/household/staples/page.test.ts +++ b/frontend/src/routes/(app)/household/staples/page.test.ts @@ -80,51 +80,31 @@ describe('staples page — settings context (no ctx)', () => { expect(screen.getByRole('heading', { name: /vorräte/i })).toBeInTheDocument(); }); - it('does not render back-link when ctx is null', () => { + it('renders back-link "← Einstellungen" when ctx is null (default settings view)', () => { 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' } } }); + render(Page, { props: { data: { categories: mockCategories, ctx: null } } }); const backLink = screen.getByRole('link', { name: /← einstellungen/i }); expect(backLink).toHaveAttribute('href', '/settings'); }); it('renders hint text about autosave', () => { - render(Page, { props: { data: { categories: mockCategories, ctx: 'settings' } } }); + render(Page, { props: { data: { categories: mockCategories, ctx: null } } }); expect(screen.getByText(/änderungen werden automatisch gespeichert/i)).toBeInTheDocument(); }); it('renders hint text about next shopping list', () => { - render(Page, { props: { data: { categories: mockCategories, ctx: 'settings' } } }); + render(Page, { props: { data: { categories: mockCategories, ctx: null } } }); expect(screen.getByText(/gilt ab der nächsten einkaufsliste/i)).toBeInTheDocument(); }); -}); -describe('staples page — hint text absent in onboarding', () => { - beforeEach(() => { - vi.stubGlobal('fetch', vi.fn().mockResolvedValue({ ok: true })); - }); - - afterEach(() => { - vi.unstubAllGlobals(); + it('does not render back-link in onboarding context', () => { + render(Page, { props: { data: { categories: mockCategories, ctx: 'onboarding' } } }); + expect(screen.queryByRole('link', { name: /einstellungen/i })).not.toBeInTheDocument(); }); it('does not render hint text in onboarding context', () => { diff --git a/frontend/src/routes/(app)/settings/+page.svelte b/frontend/src/routes/(app)/settings/+page.svelte index 637a066..cc27ca9 100644 --- a/frontend/src/routes/(app)/settings/+page.svelte +++ b/frontend/src/routes/(app)/settings/+page.svelte @@ -18,7 +18,7 @@