import { test as baseTest, chromium } from '@playwright/test' import path from 'path' import { importWallet } from './helpers/importWallet' let extensionUrl: string const pathToExtension = path.join( __dirname, 'extensions', `keplr-extension-manifest-v3-v${process.env.TEST_KEPLR_EXTENSION_VERSION}`, ) // Tests fixtures const test = baseTest.extend<{ extensionUrl: string }>({ // Overwritten Playwright context to setup Keplr wallet before all tests context: async ({}, use) => { // Launch browser with Keplr installed const context = await chromium.launchPersistentContext('', { headless: false, args: [ `--disable-extensions-except=${pathToExtension}`, `--load-extension=${pathToExtension}`, ], }) const page = await context.waitForEvent('page') // Retrieve target URL to interact with Keplr extension const extensionId = /\/\/(.*?)\//.exec(page.url())![1] extensionUrl = `chrome-extension://${extensionId}` // Import a wallet to be used in tests await importWallet({ extensionUrl, mnemonic: process.env.TEST_WALLET_MNEMONIC, name: 'main', page, }) await use(context) await context.close() }, extensionUrl: async ({}, use) => { await use(extensionUrl) }, }) export default test