UNPKG

e2ed

Version:

E2E testing framework over Playwright

30 lines (29 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRequestFromPlaywrightRequest = void 0; const node_querystring_1 = require("node:querystring"); const node_url_1 = require("node:url"); const log_1 = require("../log"); const parse_1 = require("../parse"); /** * Get request object from the original Playwright request object. * If `isRequestBodyInJsonFormat` is `true`, then parses body as JSON. * If `isRequestBodyInJsonFormat` is `false`, then returns body as is. * If `isRequestBodyInJsonFormat` is `undefined`, then safely tries to parse body as JSON. * @internal */ const getRequestFromPlaywrightRequest = (playwrightRequest, isRequestBodyInJsonFormat) => { const url = playwrightRequest.url(); const { search } = new node_url_1.URL(url); const method = playwrightRequest.method().toUpperCase(); const query = (0, node_querystring_1.parse)(search ? search.slice(1) : ''); const body = playwrightRequest.postData(); const { value: requestBody, hasParseError } = (0, parse_1.parseValueAsJsonIfNeeded)(body, isRequestBodyInJsonFormat); if (hasParseError) { (0, log_1.log)('Request body is not in JSON format', { body, logEventStatus: "failed" /* LogEventStatus.Failed */, url }, 8 /* LogEventType.InternalUtil */); } const requestHeaders = playwrightRequest.headers(); const utcTimeInMs = Date.now(); return { method, query, requestBody, requestHeaders, url, utcTimeInMs }; }; exports.getRequestFromPlaywrightRequest = getRequestFromPlaywrightRequest;