UNPKG

overmind

Version:
27 lines (25 loc) 1.19 kB
import { deepCopy } from "./statemachine.js"; import { MODE_TEST, createOnInitialize } from "./utils.js"; import { Overmind } from "./Overmind.js"; //#region src/OvermindMock.ts function createOvermindMock(...args) { const setState = typeof args[1] === "function" ? args[1] : args[2]; const mockedEffects = typeof args[1] === "function" ? void 0 : args[1]; const state = deepCopy(args[0].state); if (setState) setState(state); const mock = new Overmind(Object.assign({}, args[0], { state }), { devtools: false }, { mode: MODE_TEST, options: { effectsCallback: (effect) => { const mockedEffect = (effect.name ? effect.name.split(".") : []).reduce((aggr, key) => aggr ? aggr[key] : aggr, mockedEffects); if (!mockedEffect || mockedEffect && !mockedEffect[effect.method]) throw new Error(`The effect "${effect.name}" with method ${effect.method} has not been mocked`); return mockedEffect[effect.method](...effect.args); } } }); const action = mock.createAction("onInitialize", createOnInitialize()); mock.onInitialize = () => action(mock); mock.mutations = []; return mock; } //#endregion export { createOvermindMock }; //# sourceMappingURL=OvermindMock.js.map