From 5d9ac5024a48b393c6e3357c893d4d95c9e37099 Mon Sep 17 00:00:00 2001 From: Jacob Hagstedt Date: Tue, 15 Sep 2026 07:47:34 +0200 Subject: [PATCH] Replace the shared MOCK_* fixtures with factories A frozen shared constant forces a test needing one different field to either mutate shared state, leaking into every other test, or spread it by hand. The make*(overrides) factories cover both cases and were already doing the same job, so the constants were redundant. MOCK_PARENT_A and MOCK_PARENT_B were distinct identities that partner tests tell apart, so their uuid and name are now passed explicitly at each call site rather than left to a factory default -- the values those tests depend on stay visible where they are used. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01RXMhc9nT6sNz1SL4j8dznL --- frontend/tests/fixtures/hooks.ts | 23 +++++++++++++---------- frontend/tests/fixtures/index.ts | 2 +- frontend/tests/fixtures/mockData.ts | 11 ----------- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/frontend/tests/fixtures/hooks.ts b/frontend/tests/fixtures/hooks.ts index 3e3feb4..06b8bfa 100644 --- a/frontend/tests/fixtures/hooks.ts +++ b/frontend/tests/fixtures/hooks.ts @@ -26,7 +26,7 @@ import type { useVacationDays } from '@/hooks/useVacationDays' import type { useChildSettings } from '@/hooks/useChildSettings' import type { useCalendarDays } from '@/hooks/useCalendarDays' import type { useShowWeekNumbers } from '@/hooks/useCalendarPreferences' -import { MOCK_CHILD, MOCK_PARENT_A, MOCK_VACATION_DAYS, MOCK_WORKSPACE, makeParentalLeaveFetch } from './mockData' +import { makeChild, makePersonalData, makeVacationDays, makeWorkspace, makeParentalLeaveFetch } from './mockData' import { makeWorkspaceOverview } from './analytics' import { makeCalendarWindow } from './calendar' @@ -37,18 +37,21 @@ import { makeCalendarWindow } from './calendar' export function makeWorkspaceContextValue( overrides: Partial> = {}, ): ReturnType { + const workspace = makeWorkspace() + const child = makeChild() + const parent = makePersonalData({ uuid: 'pd-a', name: 'Förälder A' }) return { - workspace: MOCK_WORKSPACE, + workspace, isLoading: false, error: null, - workspaceId: MOCK_WORKSPACE.id, + workspaceId: workspace.id, setWorkspaceId: vi.fn(), refetch: vi.fn(), - children: [{ id: MOCK_CHILD.id, name: MOCK_CHILD.name, birth_date: MOCK_CHILD.birthDate }], - selectedChildId: MOCK_CHILD.id, + children: [{ id: child.id, name: child.name, birth_date: child.birthDate }], + selectedChildId: child.id, selectChild: vi.fn(), - personalDataUuid: MOCK_PARENT_A.uuid, - parentName: MOCK_PARENT_A.name, + personalDataUuid: parent.uuid, + parentName: parent.name, refreshContext: vi.fn(), ...overrides, } @@ -132,7 +135,7 @@ export function makeWorkspaceMembersResult( overrides: Partial> = {}, ): ReturnType { return { - data: [MOCK_PARENT_A], + data: [makePersonalData({ uuid: 'pd-a', name: 'Förälder A' })], isLoading: false, error: null, refresh: vi.fn(), @@ -210,7 +213,7 @@ export function makeVacationDaysResult( overrides: Partial> = {}, ): ReturnType { return { - data: [MOCK_VACATION_DAYS], + data: [makeVacationDays()], isLoading: false, error: null, upsert: vi.fn(), @@ -222,7 +225,7 @@ export function makeChildSettingsResult( overrides: Partial> = {}, ): ReturnType { return { - data: MOCK_CHILD, + data: makeChild(), isLoading: false, error: null, update: vi.fn(), diff --git a/frontend/tests/fixtures/index.ts b/frontend/tests/fixtures/index.ts index 427c835..b8fef9e 100644 --- a/frontend/tests/fixtures/index.ts +++ b/frontend/tests/fixtures/index.ts @@ -1,7 +1,7 @@ /** * Barrel for all typed test fixtures. Import from here: * - * import { makeWorkspaceOverview, makePlanProposal, MOCK_WORKSPACE } from '../../tests/fixtures' + * import { makeWorkspaceOverview, makePlanProposal, makeWorkspace } from '../../tests/fixtures' * * See the sibling files for what each group covers: * - mockData.ts domain entities (Workspace, PersonalData, Child, VacationDays, diff --git a/frontend/tests/fixtures/mockData.ts b/frontend/tests/fixtures/mockData.ts index 7d67aea..4b3fc5c 100644 --- a/frontend/tests/fixtures/mockData.ts +++ b/frontend/tests/fixtures/mockData.ts @@ -36,8 +36,6 @@ export function makeWorkspace(overrides: Partial = {}): Workspace { } } -export const MOCK_WORKSPACE: Workspace = makeWorkspace() - // --------------------------------------------------------------------------- // Personal data (parents) // --------------------------------------------------------------------------- @@ -54,9 +52,6 @@ export function makePersonalData(overrides: Partial = {}): Persona } } -export const MOCK_PARENT_A: PersonalData = makePersonalData({ uuid: 'pd-a', name: 'Förälder A' }) -export const MOCK_PARENT_B: PersonalData = makePersonalData({ uuid: 'pd-b', name: 'Förälder B' }) - // --------------------------------------------------------------------------- // Child // --------------------------------------------------------------------------- @@ -74,8 +69,6 @@ export function makeChild(overrides: Partial = {}): Child { } } -export const MOCK_CHILD: Child = makeChild() - // --------------------------------------------------------------------------- // Vacation days // --------------------------------------------------------------------------- @@ -94,8 +87,6 @@ export function makeVacationDays(overrides: Partial = {}): Vacatio } } -export const MOCK_VACATION_DAYS: VacationDays = makeVacationDays() - // --------------------------------------------------------------------------- // Parental leave fetch (+ tier data) // --------------------------------------------------------------------------- @@ -134,8 +125,6 @@ export function makeParentalLeaveFetch(overrides: Partial = } } -export const MOCK_PARENTAL_LEAVE: ParentalLeaveFetch = makeParentalLeaveFetch() - // --------------------------------------------------------------------------- // Leave wishes // ---------------------------------------------------------------------------