From 62c807b7fe56253688b8c32d594b6750d69405e8 Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 14 May 2026 17:03:14 +0200 Subject: [PATCH] fix(invites): resolve svelte-check warnings in UserGroupsSection and page.server.test Use untrack() for intentional one-time prop seed in UserGroupsSection. Add explicit LoadData type alias in page.server.test to avoid void|Record union. Co-Authored-By: Claude Sonnet 4.6 --- .../src/lib/user/UserGroupsSection.svelte | 3 ++- .../routes/admin/invites/page.server.test.ts | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/frontend/src/lib/user/UserGroupsSection.svelte b/frontend/src/lib/user/UserGroupsSection.svelte index 2b3444eb..6e8db2d6 100644 --- a/frontend/src/lib/user/UserGroupsSection.svelte +++ b/frontend/src/lib/user/UserGroupsSection.svelte @@ -1,4 +1,5 @@
diff --git a/frontend/src/routes/admin/invites/page.server.test.ts b/frontend/src/routes/admin/invites/page.server.test.ts index 060389e7..8e66e9b0 100644 --- a/frontend/src/routes/admin/invites/page.server.test.ts +++ b/frontend/src/routes/admin/invites/page.server.test.ts @@ -5,6 +5,17 @@ vi.mock('$env/dynamic/private', () => ({ })); import { load, actions } from './+page.server'; +import type { UserGroup } from './+page.server'; + +// PageServerLoad annotates the return as `void | (...)`. This explicit shape avoids +// the void and the Record from the generic constraint. +type LoadData = { + invites: unknown[]; + status: string; + loadError: string | null; + groups: UserGroup[]; + groupsLoadError: string | null; +}; // eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyFetch = (...args: any[]) => any; @@ -40,7 +51,7 @@ describe('admin/invites load()', () => { ]) ); - const result = await load(event()); + const result = (await load(event())) as LoadData; expect(result.groups).toHaveLength(2); expect(result.groupsLoadError).toBeNull(); @@ -55,7 +66,7 @@ describe('admin/invites load()', () => { ]) ); - const result = await load(event()); + const result = (await load(event())) as LoadData; expect(result.groups.map((g) => g.name)).toEqual(['Alfa', 'Mitte', 'Zebra']); }); @@ -65,7 +76,7 @@ describe('admin/invites load()', () => { .mockResolvedValueOnce(mockResponse(true, [])) .mockResolvedValueOnce(mockResponse(false, { code: 'FORBIDDEN' }, 403)); - const result = await load(event()); + const result = (await load(event())) as LoadData; expect(result.groups).toEqual([]); expect(result.groupsLoadError).toBe('FORBIDDEN'); @@ -76,7 +87,7 @@ describe('admin/invites load()', () => { .mockResolvedValueOnce(mockResponse(true, [])) .mockResolvedValueOnce(mockResponse(false, null, 500)); - const result = await load(event()); + const result = (await load(event())) as LoadData; expect(result.groupsLoadError).toBe('INTERNAL_ERROR'); });