From 2ca8428be4b0a04b3188eec0216e9a769a29768e Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 14 May 2026 12:11:33 +0200 Subject: [PATCH] refactor(test): hoist SubmitFn to file-level type in unsaved-guard specs Co-Authored-By: Claude Sonnet 4.6 --- .../admin/groups/new/page.svelte.spec.ts | 19 +++++++------------ .../admin/users/new/page.svelte.spec.ts | 19 +++++++------------ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/frontend/src/routes/admin/groups/new/page.svelte.spec.ts b/frontend/src/routes/admin/groups/new/page.svelte.spec.ts index e74499cc..a094997f 100644 --- a/frontend/src/routes/admin/groups/new/page.svelte.spec.ts +++ b/frontend/src/routes/admin/groups/new/page.svelte.spec.ts @@ -17,6 +17,13 @@ import { beforeNavigate, goto } from '$app/navigation'; afterEach(cleanup); +type SubmitFn = () => Promise< + (opts: { + result: { type: string; [key: string]: unknown }; + update: () => Promise; + }) => Promise +>; + // ─── Unsaved-changes guard ──────────────────────────────────────────────────── describe('Admin new group page – unsaved-changes guard', () => { @@ -81,12 +88,6 @@ describe('Admin new group page – unsaved-changes guard', () => { navCallback({ cancel: vi.fn(), to: { url: new URL('http://localhost/admin/groups') } }); await expect.element(page.getByText(/ungespeicherte Änderungen/i)).toBeInTheDocument(); - type SubmitFn = () => Promise< - (opts: { - result: { type: string; [key: string]: unknown }; - update: () => Promise; - }) => Promise - >; const innerFn = await (enhanceCaptureRef.submitFn as SubmitFn)(); await innerFn({ result: { type: 'redirect', location: '/admin/groups', status: 303 }, @@ -111,12 +112,6 @@ describe('Admin new group page – unsaved-changes guard', () => { navCallback({ cancel: vi.fn(), to: { url: new URL('http://localhost/admin/groups') } }); await expect.element(page.getByText(/ungespeicherte Änderungen/i)).toBeInTheDocument(); - type SubmitFn = () => Promise< - (opts: { - result: { type: string; [key: string]: unknown }; - update: () => Promise; - }) => Promise - >; const innerFn = await (enhanceCaptureRef.submitFn as SubmitFn)(); await innerFn({ result: { type: 'failure', status: 400, data: { error: 'Name bereits vergeben' } }, diff --git a/frontend/src/routes/admin/users/new/page.svelte.spec.ts b/frontend/src/routes/admin/users/new/page.svelte.spec.ts index 3c00ffdd..84efe99e 100644 --- a/frontend/src/routes/admin/users/new/page.svelte.spec.ts +++ b/frontend/src/routes/admin/users/new/page.svelte.spec.ts @@ -30,6 +30,13 @@ const baseData = { afterEach(cleanup); +type SubmitFn = () => Promise< + (opts: { + result: { type: string; [key: string]: unknown }; + update: () => Promise; + }) => Promise +>; + // ─── Rendering ──────────────────────────────────────────────────────────────── describe('Admin new user page – rendering', () => { @@ -141,12 +148,6 @@ describe('Admin new user page – unsaved-changes guard', () => { navCallback({ cancel: vi.fn(), to: { url: new URL('http://localhost/admin/users') } }); await expect.element(page.getByText(/ungespeicherte Änderungen/i)).toBeInTheDocument(); - type SubmitFn = () => Promise< - (opts: { - result: { type: string; [key: string]: unknown }; - update: () => Promise; - }) => Promise - >; const innerFn = await (enhanceCaptureRef.submitFn as SubmitFn)(); await innerFn({ result: { type: 'redirect', location: '/admin/users', status: 303 }, @@ -171,12 +172,6 @@ describe('Admin new user page – unsaved-changes guard', () => { navCallback({ cancel: vi.fn(), to: { url: new URL('http://localhost/admin/users') } }); await expect.element(page.getByText(/ungespeicherte Änderungen/i)).toBeInTheDocument(); - type SubmitFn = () => Promise< - (opts: { - result: { type: string; [key: string]: unknown }; - update: () => Promise; - }) => Promise - >; const innerFn = await (enhanceCaptureRef.submitFn as SubmitFn)(); await innerFn({ result: { type: 'failure', status: 400, data: { error: 'E-Mail bereits vergeben' } },