e2ed
Version:
E2E testing framework over Playwright
29 lines (28 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRequestsFilter = void 0;
const node_async_hooks_1 = require("node:async_hooks");
const asserts_1 = require("../asserts");
const getRouteInstanceFromUrl_1 = require("../getRouteInstanceFromUrl");
/**
* Get `requestsFilter` function for API mocks by `ApiMockState`.
* @internal
*/
const getRequestsFilter = ({ optionsByRoute, optionsWithRouteByUrl, }) => node_async_hooks_1.AsyncLocalStorage.bind((urlObject) => {
(0, asserts_1.assertValueIsDefined)(optionsByRoute, 'optionsByRoute is defined', { urlObject });
const url = urlObject.href;
for (const [Route, { apiMockFunction, skipLogs }] of optionsByRoute) {
const maypeRouteWithRouteParams = (0, getRouteInstanceFromUrl_1.getRouteInstanceFromUrl)(url, Route);
if (maypeRouteWithRouteParams === undefined) {
// eslint-disable-next-line no-param-reassign
optionsWithRouteByUrl[url] = undefined;
continue;
}
const { route } = maypeRouteWithRouteParams;
// eslint-disable-next-line no-param-reassign
optionsWithRouteByUrl[url] = { apiMockFunction, route, skipLogs };
return true;
}
return false;
});
exports.getRequestsFilter = getRequestsFilter;