UNPKG

rewiremock

Version:

Advanced dependency mocking device.

45 lines (38 loc) 1.21 kB
import { getAllAsyncMocks, insertMock } from "./mocks"; 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 Promise.resolve(); } }; var probeAsyncModules = { hasAsyncModules: function hasAsyncModules() { var 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; insertMock(baseRequest, currentModule.mock); }; }, execute: function execute(middleTick) { var mocks = getAllAsyncMocks(); return loadInRoll(mocks, middleTick); } }; export default probeAsyncModules;