mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Consolidate E2E test helper functions into helper.js
(#7684)
E2E test helper functions were split between `helper.js` and `func.js`. They've now all been moved to `helper.js`.
This commit is contained in:
parent
885d30f90a
commit
958ac69ba1
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
verboseReportOnFailure,
|
||||
|
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
findElement,
|
||||
openNewPage,
|
||||
verboseReportOnFailure,
|
||||
|
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, Key, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
verboseReportOnFailure,
|
||||
findElement,
|
||||
findElements,
|
||||
|
@ -1,71 +0,0 @@
|
||||
require('chromedriver')
|
||||
require('geckodriver')
|
||||
const fs = require('fs-extra')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const Command = require('selenium-webdriver/lib/command').Command
|
||||
const By = webdriver.By
|
||||
|
||||
module.exports = {
|
||||
delay,
|
||||
buildChromeWebDriver,
|
||||
buildFirefoxWebdriver,
|
||||
installWebExt,
|
||||
getExtensionIdChrome,
|
||||
getExtensionIdFirefox,
|
||||
}
|
||||
|
||||
function delay (time) {
|
||||
return new Promise(resolve => setTimeout(resolve, time))
|
||||
}
|
||||
|
||||
function buildChromeWebDriver (extPath, opts = {}) {
|
||||
const tmpProfile = fs.mkdtempSync(path.join(os.tmpdir(), 'mm-chrome-profile'))
|
||||
const args = [
|
||||
`load-extension=${extPath}`,
|
||||
`user-data-dir=${tmpProfile}`,
|
||||
]
|
||||
if (opts.responsive) {
|
||||
args.push('--auto-open-devtools-for-tabs')
|
||||
}
|
||||
return new webdriver.Builder()
|
||||
.withCapabilities({
|
||||
chromeOptions: {
|
||||
args,
|
||||
binary: process.env.SELENIUM_CHROME_BINARY,
|
||||
},
|
||||
})
|
||||
.build()
|
||||
}
|
||||
|
||||
function buildFirefoxWebdriver (opts = {}) {
|
||||
const driver = new webdriver.Builder().build()
|
||||
if (opts.responsive) {
|
||||
driver.manage().window().setSize(320, 600)
|
||||
}
|
||||
return driver
|
||||
}
|
||||
|
||||
async function getExtensionIdChrome (driver) {
|
||||
await driver.get('chrome://extensions')
|
||||
const extensionId = await driver.executeScript('return document.querySelector("extensions-manager").shadowRoot.querySelector("extensions-item-list").shadowRoot.querySelector("extensions-item:nth-child(2)").getAttribute("id")')
|
||||
return extensionId
|
||||
}
|
||||
|
||||
async function getExtensionIdFirefox (driver) {
|
||||
await driver.get('about:debugging#addons')
|
||||
const extensionId = await driver.wait(webdriver.until.elementLocated(By.xpath('//dl/div[contains(., \'Internal UUID\')]/dd')), 1000).getText()
|
||||
return extensionId
|
||||
}
|
||||
|
||||
async function installWebExt (driver, extension) {
|
||||
const cmd = await new Command('moz-install-web-ext')
|
||||
.setParameter('path', path.resolve(extension))
|
||||
.setParameter('temporary', true)
|
||||
|
||||
await driver.getExecutor()
|
||||
.defineCommand(cmd.getName(), 'POST', '/session/:sessionId/moz/addon/install')
|
||||
|
||||
return await driver.schedule(cmd, 'installWebExt(' + extension + ')')
|
||||
}
|
@ -3,16 +3,10 @@ const path = require('path')
|
||||
const mkdirp = require('mkdirp')
|
||||
const pify = require('pify')
|
||||
const assert = require('assert')
|
||||
const os = require('os')
|
||||
const { By, Builder, until } = require('selenium-webdriver')
|
||||
const { Command } = require('selenium-webdriver/lib/command')
|
||||
|
||||
const {
|
||||
delay,
|
||||
getExtensionIdChrome,
|
||||
getExtensionIdFirefox,
|
||||
buildChromeWebDriver,
|
||||
buildFirefoxWebdriver,
|
||||
installWebExt,
|
||||
} = require('./func')
|
||||
const { until } = require('selenium-webdriver')
|
||||
const fetchMockResponses = require('./fetch-mocks.json')
|
||||
|
||||
const tinyDelayMs = 200
|
||||
@ -23,6 +17,7 @@ module.exports = {
|
||||
assertElementNotPresent,
|
||||
checkBrowserForConsoleErrors,
|
||||
closeAllWindowHandlesExcept,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
openNewPage,
|
||||
@ -109,6 +104,56 @@ async function setupFetchMocking (driver) {
|
||||
await driver.executeScript(`(${fetchMocking})(${fetchMockResponsesJson})`)
|
||||
}
|
||||
|
||||
function buildChromeWebDriver (extPath, opts = {}) {
|
||||
const tmpProfile = fs.mkdtempSync(path.join(os.tmpdir(), 'mm-chrome-profile'))
|
||||
const args = [
|
||||
`load-extension=${extPath}`,
|
||||
`user-data-dir=${tmpProfile}`,
|
||||
]
|
||||
if (opts.responsive) {
|
||||
args.push('--auto-open-devtools-for-tabs')
|
||||
}
|
||||
return new Builder()
|
||||
.withCapabilities({
|
||||
chromeOptions: {
|
||||
args,
|
||||
binary: process.env.SELENIUM_CHROME_BINARY,
|
||||
},
|
||||
})
|
||||
.build()
|
||||
}
|
||||
|
||||
function buildFirefoxWebdriver (opts = {}) {
|
||||
const driver = new Builder().build()
|
||||
if (opts.responsive) {
|
||||
driver.manage().window().setSize(320, 600)
|
||||
}
|
||||
return driver
|
||||
}
|
||||
|
||||
async function getExtensionIdChrome (driver) {
|
||||
await driver.get('chrome://extensions')
|
||||
const extensionId = await driver.executeScript('return document.querySelector("extensions-manager").shadowRoot.querySelector("extensions-item-list").shadowRoot.querySelector("extensions-item:nth-child(2)").getAttribute("id")')
|
||||
return extensionId
|
||||
}
|
||||
|
||||
async function getExtensionIdFirefox (driver) {
|
||||
await driver.get('about:debugging#addons')
|
||||
const extensionId = await driver.wait(until.elementLocated(By.xpath('//dl/div[contains(., \'Internal UUID\')]/dd')), 1000).getText()
|
||||
return extensionId
|
||||
}
|
||||
|
||||
async function installWebExt (driver, extension) {
|
||||
const cmd = await new Command('moz-install-web-ext')
|
||||
.setParameter('path', path.resolve(extension))
|
||||
.setParameter('temporary', true)
|
||||
|
||||
await driver.getExecutor()
|
||||
.defineCommand(cmd.getName(), 'POST', '/session/:sessionId/moz/addon/install')
|
||||
|
||||
return await driver.schedule(cmd, 'installWebExt(' + extension + ')')
|
||||
}
|
||||
|
||||
async function checkBrowserForConsoleErrors (driver) {
|
||||
const ignoredLogTypes = ['WARNING']
|
||||
const ignoredErrorMessages = [
|
||||
@ -142,6 +187,10 @@ async function verboseReportOnFailure (driver, test) {
|
||||
await pify(fs.writeFile)(`${filepathBase}-dom.html`, htmlSource)
|
||||
}
|
||||
|
||||
function delay (time) {
|
||||
return new Promise(resolve => setTimeout(resolve, time))
|
||||
}
|
||||
|
||||
async function findElement (driver, by, timeout = 10000) {
|
||||
return driver.wait(until.elementLocated(by), timeout)
|
||||
}
|
||||
|
@ -1,12 +1,10 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
assertElementNotPresent,
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
openNewPage,
|
||||
|
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
verboseReportOnFailure,
|
||||
|
@ -1,13 +1,11 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, Key, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
assertElementNotPresent,
|
||||
checkBrowserForConsoleErrors,
|
||||
closeAllWindowHandlesExcept,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
openNewPage,
|
||||
|
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
openNewPage,
|
||||
|
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, Key, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
verboseReportOnFailure,
|
||||
findElement,
|
||||
findElements,
|
||||
|
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
openNewPage,
|
||||
|
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By, until } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
verboseReportOnFailure,
|
||||
|
@ -1,11 +1,9 @@
|
||||
const assert = require('assert')
|
||||
const webdriver = require('selenium-webdriver')
|
||||
const { By } = webdriver
|
||||
const {
|
||||
delay,
|
||||
} = require('./func')
|
||||
const {
|
||||
checkBrowserForConsoleErrors,
|
||||
delay,
|
||||
findElement,
|
||||
findElements,
|
||||
openNewPage,
|
||||
|
Loading…
x
Reference in New Issue
Block a user