UNPKG

@coinbase/onchaintestkit

Version:

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

33 lines (32 loc) 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WalletState = void 0; exports.getWalletState = getWalletState; const utils_1 = require("../../../utils"); var WalletState; (function (WalletState) { WalletState["LOCKED"] = "locked"; WalletState["UNLOCKED"] = "unlocked"; WalletState["ONBOARDING"] = "onboarding"; })(WalletState || (exports.WalletState = WalletState = {})); async function getWalletState(page) { // Wait for MetaMask UI to be fully loaded await page.waitForLoadState("domcontentloaded"); await page.waitForLoadState("networkidle"); // Wait for any loading indicators to disappear (including MetaMask-specific ones) await utils_1.LoadingStateDetector.waitForPageLoadingComplete(page, 5000, [ { selector: ".loading-logo", description: "MetaMask loading logo" }, { selector: ".loading-overlay", description: "MetaMask loading overlay" }, ]); const selectors = { [WalletState.LOCKED]: ".unlock-page", [WalletState.ONBOARDING]: ".onboarding-flow", [WalletState.UNLOCKED]: ".home__container", }; for (const [state, selector] of Object.entries(selectors)) { if (await page.locator(selector).isVisible()) { return state; } } throw new Error("Unable to determine wallet state"); }