diff --git a/src/computed.test.ts b/src/computed.test.ts index c3295eb..4784136 100644 --- a/src/computed.test.ts +++ b/src/computed.test.ts @@ -198,42 +198,44 @@ describe("slices pattern", () => { }) }) -describe("immer middleware functions without throwing", () => { - type Store = { - count: number - inc: () => void - dec: () => void - } - - type ComputedStore = { - countSq: number - } +describe("immer", () => { + test("immer middleware functions without throwing", () => { + type Store = { + count: number + inc: () => void + dec: () => void + } + + type ComputedStore = { + countSq: number + } + + const computed = createComputed( + (state: Store): ComputedStore => ({ + countSq: state.count ** 2, + }), + { keys: ["count"] }, + ) - const computed = createComputed( - (state: Store): ComputedStore => ({ - countSq: state.count ** 2, - }), - { keys: ["count"] }, - ) + const useStore = create()( + immer( + computed((set) => ({ + count: 1, + inc: () => + set((state) => { + // example with Immer middleware + state.count += 1 + }), + dec: () => set((state) => ({ count: state.count - 1 })), + })), + ), + ) - const useStore = create()( - immer( - computed((set) => ({ - count: 1, - inc: () => - set((state) => { - // example with Immer middleware - state.count += 1 - }), - dec: () => set((state) => ({ count: state.count - 1 })), - })), - ), - ) - - expect(() => useStore.getState().inc()).not.toThrow() - expect(useStore.getState().count).toEqual(2) - expect(useStore.getState().countSq).toEqual(4) - expect(() => useStore.getState().dec()).not.toThrow() - expect(useStore.getState().count).toEqual(1) - expect(useStore.getState().countSq).toEqual(1) + expect(() => useStore.getState().inc()).not.toThrow() + expect(useStore.getState().count).toEqual(2) + expect(useStore.getState().countSq).toEqual(4) + expect(() => useStore.getState().dec()).not.toThrow() + expect(useStore.getState().count).toEqual(1) + expect(useStore.getState().countSq).toEqual(1) + }) })