UNPKG

e2ed

Version:

E2E testing framework over Playwright

37 lines (36 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.waitForNewTab = void 0; const useContext_1 = require("../../useContext"); const config_1 = require("../../utils/config"); const fn_1 = require("../../utils/fn"); const getDurationWithUnits_1 = require("../../utils/getDurationWithUnits"); const log_1 = require("../../utils/log"); /** * Waits for opening of new tab and returns this tab. */ exports.waitForNewTab = (async (triggerOrOptions, options) => { const startTimeInMs = Date.now(); const context = (0, useContext_1.getPlaywrightPage)().context(); const trigger = typeof triggerOrOptions === 'function' ? triggerOrOptions : undefined; const finalOptions = typeof triggerOrOptions === 'function' ? options : (triggerOrOptions ?? options); const timeout = finalOptions?.timeout ?? (0, config_1.getFullPackConfig)().navigationTimeout; const timeoutWithUnits = (0, getDurationWithUnits_1.getDurationWithUnits)(timeout); if (trigger !== undefined) { (0, fn_1.setCustomInspectOnFunction)(trigger); } const pagePromise = context.waitForEvent('page', { timeout }); if (finalOptions?.skipLogs !== true) { (0, log_1.log)(`Set wait for new tab with timeout ${timeoutWithUnits}`, { trigger }, 7 /* LogEventType.InternalCore */); } await trigger?.(); const page = await pagePromise; const newTab = { page }; const waitInMs = Date.now() - startTimeInMs; const waitWithUnits = (0, getDurationWithUnits_1.getDurationWithUnits)(waitInMs); const url = page.url(); if (finalOptions?.skipLogs !== true) { (0, log_1.log)(`Have waited for new tab for ${waitWithUnits} at ${url}`, { timeoutWithUnits, trigger }, 7 /* LogEventType.InternalCore */); } return newTab; });