import { test as base, chromium, BrowserContext } from '@playwright/test' import { prepareMetamask } from '@synthetixio/synpress/helpers' import { initialSetup } from '@synthetixio/synpress/commands/metamask' const path = require('path') export const metamaskTest = base.extend<{ context: BrowserContext }>({ context: async ({}, use) => { // required for synpress global.expect = expect // download metamask const metamaskPath = await prepareMetamask( process.env.METAMASK_VERSION || '10.26.2' ) // prepare browser args const browserArgs = [ `--disable-extensions-except=${metamaskPath}`, `--load-extension=${metamaskPath}`, '--remote-debugging-port=9222' ] if (process.env.CI) { browserArgs.push('--disable-gpu') } if (process.env.HEADLESS_MODE) { browserArgs.push('--headless=new') } // launch browser const context = await chromium.launchPersistentContext('', { headless: false, args: browserArgs }) // wait for metamask await context.pages()[0].waitForTimeout(3000) // setup metamask await initialSetup(chromium, { secretWordsOrPrivateKey: process.env.TEST_WALLET_PHRASE, network: 'goerli', password: 'Tester@1234', enableAdvancedSettings: true }) await use(context) if (!process.env.SERIAL_MODE) { await context.close() } } }) export const expect = metamaskTest.expect