e2ed
Version:
E2E testing framework over Playwright
39 lines (38 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.navigateToPage = void 0;
const apiStatistics_1 = require("../../utils/apiStatistics");
const document_1 = require("../../utils/document");
const getDurationWithUnits_1 = require("../../utils/getDurationWithUnits");
const log_1 = require("../../utils/log");
const createPageInstance_1 = require("./createPageInstance");
/**
* Navigates to the page by page class and page params.
*/
const navigateToPage = async (...args) => {
const [PageClass, pageParams] = args;
const startTimeInMs = Date.now();
const page = await (0, createPageInstance_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;
(0, log_1.log)(`Will navigate to the page "${pageName}"`, { pageInstanceCreatedInMs, pageParams, routeParams, url }, 5 /* LogEventType.InternalAction */);
await page.beforeNavigateToPage?.();
await page.navigateToPage(url);
(0, log_1.log)(`Navigation to the page "${pageName}" completed`, { pageParams, routeParams, url }, 5 /* LogEventType.InternalAction */);
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;
const durationWithUnits = (0, getDurationWithUnits_1.getDurationWithUnits)(duration);
(0, log_1.log)(`Page "${pageName}" loaded in ${durationWithUnits}`, { url }, 5 /* LogEventType.InternalAction */);
(0, apiStatistics_1.addPageToApiStatistics)({ duration, pageName, url });
return page;
};
exports.navigateToPage = navigateToPage;