@helpscout/cyan
Version:
Cypress-like Testing for React + JSDOM
59 lines (43 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.shouldUseFakeTimers = exports.resetConfig = exports.setConfigState = exports.getConfigState = void 0;
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 initialState = {
Promise: global.Promise,
useFakeTimers: false,
useFakePromises: false
};
var CYAN_CONFIGURATION_STATE = initialState;
var getConfigState = function () {
return CYAN_CONFIGURATION_STATE;
};
exports.getConfigState = getConfigState;
var setConfigState = 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)(getConfigState(), nextState);
CYAN_CONFIGURATION_STATE = state;
(0, _invariant.default)((0, _is.isFunction)(callback), 'Provide setStoreState with a valid callback (Function).');
callback(state);
};
exports.setConfigState = setConfigState;
var resetConfig = function () {
CYAN_CONFIGURATION_STATE = initialState;
};
exports.resetConfig = resetConfig;
var shouldUseFakeTimers = function () {
return !!getConfigState().useFakeTimers;
};
exports.shouldUseFakeTimers = shouldUseFakeTimers;