UNPKG

e2ed

Version:

E2E testing framework over Playwright

39 lines (38 loc) 2 kB
"use strict"; 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;