From ea99dd6b75514fec35b3670a3c40deeccb4fdcd7 Mon Sep 17 00:00:00 2001 From: Tito Bouzout Date: Fri, 13 Sep 2024 09:30:44 -0300 Subject: [PATCH] add a failing test case --- packages/solid/store/test/modifiers.spec.ts | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/solid/store/test/modifiers.spec.ts b/packages/solid/store/test/modifiers.spec.ts index 2cbb58d2d..856b6b2a2 100644 --- a/packages/solid/store/test/modifiers.spec.ts +++ b/packages/solid/store/test/modifiers.spec.ts @@ -156,6 +156,32 @@ describe("setState with reconcile", () => { setStore(reconcile({ value: { q: "aa" } })); expect(store.value).toEqual({ q: "aa" }); }); + test("reconciles an object with an array", () => { + const [store, setStore] = createStore<{ value: {} | [] }>({ + value: { foo: "bar" } + }); + + const value = [0, 1, 2]; + setStore("value", reconcile(value)); + + expect(Array.isArray(store.value)).toBe(true); + expect(store).toEqual({ + value: [0, 1, 2] + }); + }); + + test("reconciles an array with an object", () => { + const [store, setStore] = createStore<{ value: {} | [] }>({ + value: [0, 1, 2] + }); + + const value = { foo: "bar" }; + setStore("value", reconcile(value)); + expect(Array.isArray(store.value)).toBe(false); + expect(store).toEqual({ + value: { foo: "bar" } + }); + }); }); describe("setState with produce", () => {