UNPKG

@coinbase/onchaintestkit

Version:

End-to-end testing toolkit for blockchain applications, powered by Playwright

30 lines (29 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.waitForPage = waitForPage; const LoadingStateDetector_1 = require("./LoadingStateDetector"); /** * Generic utility to wait for and configure a page by URL * * @param context - Browser context to search for pages * @param pageUrl - Full URL of the page to wait for (e.g., 'chrome-extension://extensionId/notification.html') * @param viewport - Optional viewport size (defaults to 360x592 for extension popups) * @returns Promise that resolves to the found and configured page */ async function waitForPage(context, pageUrl, viewport) { const isTargetPage = (page) => page.url().includes(pageUrl); let targetPage = context.pages().find(isTargetPage); if (!targetPage) { targetPage = await context.waitForEvent("page", { predicate: isTargetPage, }); } // Wait for DOM content to load await targetPage.waitForLoadState("domcontentloaded"); if (viewport) { await targetPage.setViewportSize(viewport); } // Wait for loading indicators to disappear await LoadingStateDetector_1.LoadingStateDetector.waitForPageLoadingComplete(targetPage, 10000); return targetPage; }