51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
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
|