e2ed
Version:
E2E testing framework over Playwright
31 lines (30 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.switchPlaywrightPage = void 0;
const clearPage_1 = require("../../context/clearPage");
const test_1 = require("../test");
const waitForRequest_1 = require("./waitForRequest");
const waitForResponse_1 = require("./waitForResponse");
/**
* Switches internal Playwright page from old to new.
* Removes all event handlers from the old page and moves them to the new one.
* @internal
*/
const switchPlaywrightPage = async (newPage) => {
const clearPage = (0, clearPage_1.getClearPage)();
await clearPage?.();
await (0, test_1.preparePage)(newPage);
const oldRequestCalls = [...waitForRequest_1.waitForRequestCalls];
waitForRequest_1.waitForRequestCalls.length = 0;
for (const { disablePredicate, options, predicate, reject, resolve } of oldRequestCalls) {
disablePredicate();
(0, waitForRequest_1.pageWaitForRequest)(newPage, predicate, options).then(resolve, reject);
}
const oldResponseCalls = [...waitForResponse_1.waitForResponseCalls];
waitForResponse_1.waitForResponseCalls.length = 0;
for (const { disablePredicate, options, predicate, reject, resolve } of oldResponseCalls) {
disablePredicate();
(0, waitForResponse_1.pageWaitForResponse)(newPage, predicate, options).then(resolve, reject);
}
};
exports.switchPlaywrightPage = switchPlaywrightPage;