overmind
Version:
Frictionless state management
39 lines • 1.54 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createOvermindMock = void 0;
const tslib_1 = require("tslib");
const Overmind_1 = require("./Overmind");
const utils = tslib_1.__importStar(require("./utils"));
function createOvermindMock(...args) {
const setState = typeof args[1] === 'function' ? args[1] : args[2];
const mockedEffects = typeof args[1] === 'function' ? undefined : args[1];
const state = utils.deepCopy(args[0].state);
if (setState) {
;
setState(state);
}
const mock = new Overmind_1.Overmind(Object.assign({}, args[0], {
state,
}), {
devtools: false,
}, {
mode: 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', utils.createOnInitialize());
mock.onInitialize = () => action(mock);
mock.mutations = [];
return mock;
}
exports.createOvermindMock = createOvermindMock;
//# sourceMappingURL=OvermindMock.js.map
;