e2ed
Version:
E2E testing framework over Playwright
41 lines (40 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.writeResponseToFullMocks = void 0;
const fullMocks_1 = require("../../context/fullMocks");
const asserts_1 = require("../asserts");
const config_1 = require("../config");
const headers_1 = require("../headers");
const object_1 = require("../object");
/**
* Writes `ResponseWithRequest` to full mocks of test.
* @internal
*/
const writeResponseToFullMocks = (responseWithRequest) => {
const { fullMocks: fullMocksConfig } = (0, config_1.getFullPackConfig)();
const fullMocksState = (0, fullMocks_1.getFullMocksState)();
(0, asserts_1.assertValueIsDefined)(fullMocksState, 'fullMocksState is defined', { responseWithRequest });
(0, asserts_1.assertValueIsNotNull)(fullMocksConfig, 'fullMocksConfig is not null', { responseWithRequest });
const contentType = (0, headers_1.getHeaderValue)(responseWithRequest.responseHeaders, 'content-type');
const contentTypeString = (Array.isArray(contentType) ? contentType : [contentType])
.join(',')
.toLowerCase();
if (!contentTypeString.includes('application/json')) {
return;
}
const { url } = responseWithRequest.request;
const urlObject = new URL(url);
const requestKind = fullMocksConfig.getRequestKind(urlObject);
const responseToWrite = fullMocksConfig.getResponseToWriteToFullMocks(requestKind, responseWithRequest);
if (responseToWrite === undefined) {
return;
}
const { testFullMocks } = fullMocksState;
if (!testFullMocks[requestKind]) {
(0, object_1.setReadonlyProperty)(testFullMocks, requestKind, []);
}
const listOfResponses = testFullMocks[requestKind];
(0, asserts_1.assertValueIsDefined)(listOfResponses, 'listOfResponses is defined', { responseWithRequest });
listOfResponses.push(responseToWrite);
};
exports.writeResponseToFullMocks = writeResponseToFullMocks;