UNPKG

e2ed

Version:

E2E testing framework over Playwright

38 lines (37 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setHeadersAndNavigateToUrl = void 0; const node_async_hooks_1 = require("node:async_hooks"); const useContext_1 = require("../useContext"); const config_1 = require("../utils/config"); const headers_1 = require("../utils/headers"); const log_1 = require("../utils/log"); const navigateToUrl_1 = require("./navigateToUrl"); /** * Navigate to the url and map custom response and request headers. */ const setHeadersAndNavigateToUrl = async (url, options, navigateToUrlOptions) => { const { mapRequestHeaders, mapResponseHeaders } = options; const page = (0, useContext_1.getPlaywrightPage)(); await page.route(url, node_async_hooks_1.AsyncLocalStorage.bind(async (route) => { if (mapResponseHeaders === undefined) { return route.fallback(); } const timeout = navigateToUrlOptions?.timeout ?? (0, config_1.getFullPackConfig)().navigationTimeout; const response = await route.fetch({ timeout }); const headers = response.headers(); (0, headers_1.applyHeadersMapper)(headers, mapResponseHeaders); (0, log_1.log)(`Map response headers for ${url}`, { headers }, 5 /* LogEventType.InternalAction */); return route.fulfill({ headers, response }); }), { times: 1 }); if (mapRequestHeaders !== undefined) { await page.route(url, node_async_hooks_1.AsyncLocalStorage.bind(async (route, request) => { const headers = request.headers(); (0, headers_1.applyHeadersMapper)(headers, mapRequestHeaders); (0, log_1.log)(`Map request headers for ${url}`, { headers }, 5 /* LogEventType.InternalAction */); await route.fallback({ headers }); }), { times: 1 }); } await (0, navigateToUrl_1.navigateToUrl)(url, { skipLogs: true, ...navigateToUrlOptions }); }; exports.setHeadersAndNavigateToUrl = setHeadersAndNavigateToUrl;