e2ed
Version:
E2E testing framework over Playwright
40 lines (39 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.waitForStartOfPageLoad = void 0;
const internal_1 = require("../../constants/internal");
const testRunPromise_1 = require("../../context/testRunPromise");
const step_1 = require("../../step");
const useContext_1 = require("../../useContext");
const asserts_1 = require("../../utils/asserts");
const config_1 = require("../../utils/config");
/**
* Waits for start of page load (when change the url or reload page).
*/
const waitForStartOfPageLoad = async (options) => {
const timeout = options?.timeout ?? (0, config_1.getFullPackConfig)().navigationTimeout;
let urlObject;
await (0, step_1.step)('Wait for start of page load', async () => {
const page = (0, useContext_1.getPlaywrightPage)();
let wasCalled = false;
const promise = page.waitForURL((url) => {
if (wasCalled === false) {
wasCalled = true;
return false;
}
urlObject = url;
return true;
}, { timeout, waitUntil: 'commit' });
const testRunPromise = (0, testRunPromise_1.getTestRunPromise)();
await Promise.race([promise, testRunPromise]);
return { url: urlObject?.href };
}, {
payload: { options },
skipLogs: options?.skipLogs ?? false,
timeout: timeout + internal_1.ADDITIONAL_STEP_TIMEOUT,
type: 7 /* LogEventType.InternalCore */,
});
(0, asserts_1.assertValueIsDefined)(urlObject, 'urlObject is defined', { options });
return urlObject;
};
exports.waitForStartOfPageLoad = waitForStartOfPageLoad;