1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Update e2e tests to handle any post-install window creation

This commit is contained in:
Whymarrh Whitby 2018-11-26 17:15:59 -03:30
parent ec4c93c59f
commit 34da38817a
3 changed files with 38 additions and 9 deletions

View File

@ -12,6 +12,7 @@ const {
} = require('../func') } = require('../func')
const { const {
checkBrowserForConsoleErrors, checkBrowserForConsoleErrors,
closeAllWindowHandlesExcept,
verboseReportOnFailure, verboseReportOnFailure,
findElement, findElement,
findElements, findElements,
@ -32,13 +33,14 @@ describe('Using MetaMask with an existing account', function () {
this.bail(true) this.bail(true)
before(async function () { before(async function () {
let extensionUrl
switch (process.env.SELENIUM_BROWSER) { switch (process.env.SELENIUM_BROWSER) {
case 'chrome': { case 'chrome': {
const extensionPath = path.resolve('dist/chrome') const extensionPath = path.resolve('dist/chrome')
driver = buildChromeWebDriver(extensionPath) driver = buildChromeWebDriver(extensionPath)
extensionId = await getExtensionIdChrome(driver) extensionId = await getExtensionIdChrome(driver)
await driver.get(`chrome-extension://${extensionId}/home.html`)
await delay(regularDelayMs) await delay(regularDelayMs)
extensionUrl = `chrome-extension://${extensionId}/home.html`
break break
} }
case 'firefox': { case 'firefox': {
@ -47,11 +49,17 @@ describe('Using MetaMask with an existing account', function () {
await installWebExt(driver, extensionPath) await installWebExt(driver, extensionPath)
await delay(regularDelayMs) await delay(regularDelayMs)
extensionId = await getExtensionIdFirefox(driver) extensionId = await getExtensionIdFirefox(driver)
await driver.get(`moz-extension://${extensionId}/home.html`) extensionUrl = `moz-extension://${extensionId}/home.html`
await delay(regularDelayMs)
break break
} }
} }
// Depending on the state of the application built into the above directory (extPath) and the value of
// METAMASK_DEBUG we will see different post-install behaviour and possibly some extra windows. Here we
// are closing any extraneous windows to reset us to a single window before continuing.
const [tab1] = await driver.getAllWindowHandles()
await closeAllWindowHandlesExcept(driver, [tab1])
await driver.switchTo().window(tab1)
await driver.get(extensionUrl)
}) })
afterEach(async function () { afterEach(async function () {

View File

@ -12,6 +12,7 @@ const {
} = require('../func') } = require('../func')
const { const {
checkBrowserForConsoleErrors, checkBrowserForConsoleErrors,
closeAllWindowHandlesExcept,
findElement, findElement,
findElements, findElements,
loadExtension, loadExtension,
@ -31,23 +32,33 @@ describe('MetaMask', function () {
this.bail(true) this.bail(true)
before(async function () { before(async function () {
let extensionUrl
switch (process.env.SELENIUM_BROWSER) { switch (process.env.SELENIUM_BROWSER) {
case 'chrome': { case 'chrome': {
const extPath = path.resolve('dist/chrome') const extPath = path.resolve('dist/chrome')
driver = buildChromeWebDriver(extPath, { responsive: true }) driver = buildChromeWebDriver(extPath, { responsive: true })
extensionId = await getExtensionIdChrome(driver) extensionId = await getExtensionIdChrome(driver)
await driver.get(`chrome-extension://${extensionId}/home.html`) await delay(largeDelayMs)
extensionUrl = `chrome-extension://${extensionId}/home.html`
break break
} }
case 'firefox': { case 'firefox': {
const extPath = path.resolve('dist/firefox') const extPath = path.resolve('dist/firefox')
driver = buildFirefoxWebdriver({ responsive: true }) driver = buildFirefoxWebdriver({ responsive: true })
await installWebExt(driver, extPath) await installWebExt(driver, extPath)
await delay(700) await delay(largeDelayMs)
extensionId = await getExtensionIdFirefox(driver) extensionId = await getExtensionIdFirefox(driver)
await driver.get(`moz-extension://${extensionId}/home.html`) extensionUrl = `moz-extension://${extensionId}/home.html`
break
} }
} }
// Depending on the state of the application built into the above directory (extPath) and the value of
// METAMASK_DEBUG we will see different post-install behaviour and possibly some extra windows. Here we
// are closing any extraneous windows to reset us to a single window before continuing.
const [tab1] = await driver.getAllWindowHandles()
await closeAllWindowHandlesExcept(driver, [tab1])
await driver.switchTo().window(tab1)
await driver.get(extensionUrl)
}) })
afterEach(async function () { afterEach(async function () {

View File

@ -37,23 +37,33 @@ describe('MetaMask', function () {
this.bail(true) this.bail(true)
before(async function () { before(async function () {
let extensionUrl
switch (process.env.SELENIUM_BROWSER) { switch (process.env.SELENIUM_BROWSER) {
case 'chrome': { case 'chrome': {
const extPath = path.resolve('dist/chrome') const extPath = path.resolve('dist/chrome')
driver = buildChromeWebDriver(extPath) driver = buildChromeWebDriver(extPath)
extensionId = await getExtensionIdChrome(driver) extensionId = await getExtensionIdChrome(driver)
await driver.get(`chrome-extension://${extensionId}/home.html`) await delay(largeDelayMs)
extensionUrl = `chrome-extension://${extensionId}/home.html`
break break
} }
case 'firefox': { case 'firefox': {
const extPath = path.resolve('dist/firefox') const extPath = path.resolve('dist/firefox')
driver = buildFirefoxWebdriver() driver = buildFirefoxWebdriver()
await installWebExt(driver, extPath) await installWebExt(driver, extPath)
await delay(700) await delay(largeDelayMs)
extensionId = await getExtensionIdFirefox(driver) extensionId = await getExtensionIdFirefox(driver)
await driver.get(`moz-extension://${extensionId}/home.html`) extensionUrl = `moz-extension://${extensionId}/home.html`
break
} }
} }
// Depending on the state of the application built into the above directory (extPath) and the value of
// METAMASK_DEBUG we will see different post-install behaviour and possibly some extra windows. Here we
// are closing any extraneous windows to reset us to a single window before continuing.
const [tab1] = await driver.getAllWindowHandles()
await closeAllWindowHandlesExcept(driver, [tab1])
await driver.switchTo().window(tab1)
await driver.get(extensionUrl)
}) })
afterEach(async function () { afterEach(async function () {