UNPKG

rewiremock

Version:

Advanced dependency mocking device.

57 lines (45 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _promise = require("babel-runtime/core-js/promise"); var _promise2 = _interopRequireDefault(_promise); var _mocks = require("./mocks"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var currentModule = void 0; var loadInRoll = function loadInRoll(mocks, middleTick) { if (mocks.length) { currentModule = mocks[0]; currentModule.result = currentModule.creator(); if (currentModule.result && currentModule.result.then) { return middleTick().then(function () { return currentModule.result; }).then(function () { return loadInRoll(mocks.slice(1), middleTick); }); } else { return loadInRoll(mocks.slice(1), middleTick); } } else { return _promise2.default.resolve(); } }; var probeAsyncModules = { hasAsyncModules: function hasAsyncModules() { var mocks = (0, _mocks.getAllAsyncMocks)(); return mocks.length ? mocks : false; }, load: function load(Module) { return function (request, parent) { currentModule.loaded = true; var baseRequest = Module._resolveFilename(request, parent); currentModule.mock.name = baseRequest; (0, _mocks.insertMock)(baseRequest, currentModule.mock); }; }, execute: function execute(middleTick) { var mocks = (0, _mocks.getAllAsyncMocks)(); return loadInRoll(mocks, middleTick); } }; exports.default = probeAsyncModules;