e2ed
Version:
E2E testing framework over Playwright
45 lines (44 loc) • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.navigateToPage = void 0;
const internal_1 = require("../../constants/internal");
const step_1 = require("../../step");
const apiStatistics_1 = require("../../utils/apiStatistics");
const asserts_1 = require("../../utils/asserts");
const document_1 = require("../../utils/document");
const pageObjects_1 = require("../../utils/pageObjects");
/**
* Navigates to the page by page class and page params.
*/
const navigateToPage = async (...args) => {
const [PageClass, pageParams] = args;
let page;
await (0, step_1.step)(`Navigate to the page "${PageClass.name}"`, async () => {
const startTimeInMs = Date.now();
page = await (0, pageObjects_1.createPageInstance)(PageClass, pageParams);
const route = page.getRoute();
const { routeParams } = route;
const url = route.getUrl();
const startNavigateTimeInMs = Date.now();
const pageInstanceCreatedInMs = startNavigateTimeInMs - startTimeInMs;
const pageName = PageClass.name;
await page.beforeNavigateToPage?.();
await page.navigateToPage(url);
await page.waitForPageLoaded();
const documentUrl = await (0, document_1.getDocumentUrl)();
const isMatch = route.isMatchUrl(documentUrl);
await page.assertPage(isMatch, documentUrl);
await page.afterAssertPage?.();
await page.afterNavigateToPage?.();
const duration = Date.now() - startNavigateTimeInMs;
(0, apiStatistics_1.addPageToApiStatistics)({ duration, pageName, url });
return { documentUrl, isMatch, pageInstanceCreatedInMs, routeParams, url };
}, {
payload: { pageParams },
timeout: PageClass.navigationTimeout + internal_1.ADDITIONAL_STEP_TIMEOUT,
type: 5 /* LogEventType.InternalAction */,
});
(0, asserts_1.assertValueIsDefined)(page, 'page is defined', { name: PageClass.name, pageParams });
return page;
};
exports.navigateToPage = navigateToPage;