UNPKG

e2ed

Version:

E2E testing framework over Playwright

41 lines (40 loc) 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getResponseFromPlaywrightResponse = void 0; const internal_1 = require("../../constants/internal"); const getDurationWithUnits_1 = require("../getDurationWithUnits"); const parse_1 = require("../parse"); const getRequestFromPlaywrightRequest_1 = require("./getRequestFromPlaywrightRequest"); /** * Get response object from the original Playwright response object. * If `isResponseBodyInJsonFormat` is `true`, then parses body as JSON. * If `isResponseBodyInJsonFormat` is `false`, then returns body as is. * If `isResponseBodyInJsonFormat` is `undefined`, then safely tries to parse body as JSON. * @internal */ const getResponseFromPlaywrightResponse = async (playwrightResponse, isResponseBodyInJsonFormat) => { const playwrightRequest = playwrightResponse.request(); const request = (0, getRequestFromPlaywrightRequest_1.getRequestFromPlaywrightRequest)(playwrightRequest); let responseBody; const statusCode = playwrightResponse.status(); if (statusCode >= internal_1.MULTIPLE_CHOICES_STATUS_CODE && statusCode < internal_1.BAD_REQUEST_STATUS_CODE) { responseBody = ''; } else if (isResponseBodyInJsonFormat === true) { responseBody = await playwrightResponse.json().catch(() => ''); } else { const responseBodyAsString = await playwrightResponse.text().catch(() => ''); try { responseBody = (0, parse_1.parseMaybeEmptyValueAsJson)(responseBodyAsString); } catch { responseBody = responseBodyAsString; } } const completionTimeInMs = Date.now(); const duration = (0, getDurationWithUnits_1.getDurationWithUnits)(completionTimeInMs - request.utcTimeInMs); const responseHeaders = playwrightResponse.headers(); return { completionTimeInMs, duration, request, responseBody, responseHeaders, statusCode }; }; exports.getResponseFromPlaywrightResponse = getResponseFromPlaywrightResponse;