UNPKG

e2ed

Version:

E2E testing framework over Playwright

45 lines (44 loc) 2.04 kB
"use strict"; 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;