overmind
Version:
Frictionless state management
27 lines (25 loc) • 1.28 kB
JavaScript
const require_statemachine = require('./statemachine.js');
const require_utils = require('./utils.js');
const require_Overmind = require('./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 = require_statemachine.deepCopy(args[0].state);
if (setState) setState(state);
const mock = new require_Overmind.Overmind(Object.assign({}, args[0], { state }), { devtools: false }, {
mode: require_utils.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", require_utils.createOnInitialize());
mock.onInitialize = () => action(mock);
mock.mutations = [];
return mock;
}
//#endregion
exports.createOvermindMock = createOvermindMock;
//# sourceMappingURL=OvermindMock.js.map