overmind
Version:
Frictionless state management
1 lines • 3.38 kB
Source Map (JSON)
{"version":3,"file":"ssr.test.js","sourceRoot":"","sources":["../src/ssr.test.ts"],"names":[],"mappings":";;AAEA,yBAA2E;AAE3E,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAI3C,MAAM,KAAK,GAAU;YACnB,GAAG,EAAE,KAAK;SACX,CAAA;QACD,MAAM,MAAM,GAAG;YACb,KAAK;SACN,CAAA;QAED,MAAM,QAAQ,GAAG,IAAA,oBAAiB,EAAC,MAAM,CAAC,CAAA;QAE1C,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAA;QAE3B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YAC7B,GAAG,EAAE,MAAM;SACZ,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAI3C,MAAM,KAAK,GAAU;YACnB,GAAG,EAAE,KAAK;SACX,CAAA;QACD,MAAM,MAAM,GAAG;YACb,KAAK;SACN,CAAA;QAED,MAAM,QAAQ,GAAG,IAAA,oBAAiB,EAAC,MAAM,CAAC,CAAA;QAE1C,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAA;QAE3B,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAIrC,IAAI,SAAS,GAAgB,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAU;YACnB,GAAG,EAAE,KAAK;SACX,CAAA;QACD,MAAM,OAAO,GAAG;YACd,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAW,EAAE,EAAE;gBAC3C,IAAA,YAAS,EAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YAC7B,CAAC;SACF,CAAA;QAED,MAAM,MAAM,GAAG;YACb,OAAO;YACP,KAAK;SACN,CAAA;QAMD,MAAM,WAAW,GAAG,IAAA,oBAAiB,EAAC,MAAM,CAAC,CAAA;QAE7C,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAA;QAE9B,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,CAAA;QAEjC,MAAM,QAAQ,GAAG,IAAI,WAAQ,CAAC,MAAM,CAAC,CAAA;QAErC,MAAM,CAAC,IAAA,OAAI,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YACnC,GAAG,EAAE,MAAM;SACZ,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { IMutation } from 'proxy-state-tree'\n\nimport { Overmind, createOvermindSSR, json, rehydrate, IContext } from './'\n\ndescribe('Mock', () => {\n test('should allow changing the state', () => {\n type State = {\n foo: string\n }\n const state: State = {\n foo: 'bar',\n }\n const config = {\n state,\n }\n\n const overmind = createOvermindSSR(config)\n\n overmind.state.foo = 'bar2'\n\n expect(overmind.state).toEqual({\n foo: 'bar2',\n })\n })\n test('should return a tree of changes', () => {\n type State = {\n foo: string\n }\n const state: State = {\n foo: 'bar',\n }\n const config = {\n state,\n }\n\n const overmind = createOvermindSSR(config)\n\n overmind.state.foo = 'bar2'\n\n const mutations = overmind.hydrate()\n expect(mutations[0].method).toBe('set')\n expect(mutations[0].path).toBe('foo')\n expect(mutations[0].args).toEqual(['bar2'])\n })\n test('should rehydrate mutation', () => {\n type State = {\n foo: string\n }\n let mutations: IMutation[] = []\n const state: State = {\n foo: 'bar',\n }\n const actions = {\n onInitializeOvermind: ({ state }: Context) => {\n rehydrate(state, mutations)\n },\n }\n\n const config = {\n actions,\n state,\n }\n\n type Context = IContext<{\n state: typeof state\n }>\n\n const overmindSsr = createOvermindSSR(config)\n\n overmindSsr.state.foo = 'bar2'\n\n mutations = overmindSsr.hydrate()\n\n const overmind = new Overmind(config)\n\n expect(json(overmind.state)).toEqual({\n foo: 'bar2',\n })\n })\n})\n"]}