cycles-quartz/examples/transfers/frontend/tests/e2e/fixtures.ts

51 lines
1.3 KiB
TypeScript
Raw Permalink Normal View History

import { test as baseTest, chromium } from '@playwright/test'
2024-08-28 08:07:41 +00:00
import path from 'path'
import { importWallet } from './helpers/importWallet'
2024-08-28 08:07:41 +00:00
let extensionUrl: string
const pathToExtension = path.join(
__dirname,
'extensions',
`keplr-extension-manifest-v3-v${process.env.TEST_KEPLR_EXTENSION_VERSION}`,
)
2024-08-28 08:07:41 +00:00
// 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()
2024-08-28 08:07:41 +00:00
},
extensionUrl: async ({}, use) => {
await use(extensionUrl)
2024-08-28 08:07:41 +00:00
},
})
export default test