UNPKG

@helpscout/cyan

Version:

Cypress-like Testing for React + JSDOM

122 lines (90 loc) 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.completelyResetStore = exports.resetStore = exports.setStoreReducer = exports.setInitialState = exports.setStoreState = exports.setStore = exports.getStoreState = exports.getStoreReducer = exports.getStore = exports.mockStore = exports.mockReducer = void 0; var _redux = require("redux"); var _invariant = _interopRequireDefault(require("invariant")); var _deepmerge = _interopRequireDefault(require("deepmerge")); var _is = require("./utils/is.utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var mockReducer = function (state) { if (state === void 0) { state = {}; } return state; }; exports.mockReducer = mockReducer; var mockStore = (0, _redux.createStore)(mockReducer, {}); exports.mockStore = mockStore; var CYAN_STORE = mockStore; var CYAN_STORE_REDUCER = mockReducer; var CYAN_STORE_INITIAL_STATE = {}; var getStore = function () { return CYAN_STORE; }; exports.getStore = getStore; var getStoreReducer = function () { return CYAN_STORE_REDUCER; }; exports.getStoreReducer = getStoreReducer; var getStoreState = function () { return getStore().getState(); }; exports.getStoreState = getStoreState; var setStore = function (store) { if (store === void 0) { store = mockStore; } (0, _invariant.default)((0, _is.isObject)(store), 'Provide setStore with a valid createStore() instance.'); CYAN_STORE = store; CYAN_STORE_INITIAL_STATE = store.getState(); return getStore(); }; exports.setStore = setStore; var setStoreState = function (nextState, callback) { if (nextState === void 0) { nextState = {}; } if (callback === void 0) { callback = function () { return null; }; } (0, _invariant.default)((0, _is.isObject)(nextState), 'Provide setStoreState with a valid state (Object).'); var state = (0, _deepmerge.default)(getStoreState(), nextState); var store = (0, _redux.createStore)(getStoreReducer(), state); setStore(store); (0, _invariant.default)((0, _is.isFunction)(callback), 'Provide setStoreState with a valid callback (Function).'); callback(state); }; exports.setStoreState = setStoreState; var setInitialState = function (initialState) { if (initialState === void 0) { initialState = {}; } setStoreState(initialState); return getStoreState(); }; exports.setInitialState = setInitialState; var setStoreReducer = function (reducer) { if (reducer === void 0) { reducer = mockReducer; } (0, _invariant.default)((0, _is.isObject)(reducer) || (0, _is.isFunction)(reducer), 'Provide setStoreReducer with a valid reducer (Object/Function).'); CYAN_STORE_REDUCER = (0, _is.isObject)(reducer) ? (0, _redux.combineReducers)(reducer) : reducer; setStoreState(); return reducer; }; exports.setStoreReducer = setStoreReducer; var resetStore = function () { setInitialState(CYAN_STORE_INITIAL_STATE); return getStore(); }; exports.resetStore = resetStore; var completelyResetStore = function () { setStoreReducer(); setStore(); return getStore(); }; exports.completelyResetStore = completelyResetStore;