UNPKG

@helpscout/cyan

Version:

Cypress-like Testing for React + JSDOM

59 lines (43 loc) 1.56 kB
"use strict"; 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;