diff --git a/test/utils/programStore.test.ts b/test/utils/programStore.test.ts index 4109eac..ba78b88 100644 --- a/test/utils/programStore.test.ts +++ b/test/utils/programStore.test.ts @@ -85,14 +85,30 @@ describe('useProgramStore', () => { ).toThrow('phase with id:"missing-phase" not found'); }); - // this test should be at the bottom to avoid conflicts with the previous tests it('should clone program state when setting it (no shared references should exist)', () => { - useProgramStore.getState().setProgramState(mockProgram); + const changeableMockProgram: ReducedProgram = { + phases: [ + { + id: 'phase-1', + norms: [{ id: 'norm-1' }], + goals: [{ id: 'goal-1' }], + triggers: [{ id: 'trigger-1' }], + }, + { + id: 'phase-2', + norms: [{ id: 'norm-2' }], + goals: [{ id: 'goal-2' }], + triggers: [{ id: 'trigger-2' }], + }, + ], + }; + + useProgramStore.getState().setProgramState(changeableMockProgram); const storedProgram = useProgramStore.getState().getProgramState(); // mutate original - (mockProgram.phases[0].norms as any[]).push({ id: 'norm-mutated' }); + (changeableMockProgram.phases[0].norms as any[]).push({ id: 'norm-mutated' }); // store should NOT change expect(storedProgram.phases[0]['norms']).toHaveLength(1);