1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 19:26:13 +02:00

Add page navigation to e2e web driver (#7867)

The driver now has a page navigation function that can navigate to any
of the three primary pages used in the extension. Additional pages and
support of paths can be added later as needed.
This commit is contained in:
Mark Stacey 2020-01-20 13:03:07 -04:00 committed by GitHub
parent 22d66b3b2d
commit ca38635d22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 7 deletions

View File

@ -28,7 +28,7 @@ class ChromeDriver {
return {
driver,
extensionUrl: `chrome-extension://${extensionId}/home.html`,
extensionUrl: `chrome-extension://${extensionId}`,
}
}

View File

@ -8,9 +8,10 @@ class Driver {
* @param {string} browser - The type of browser this driver is controlling
* @param {number} timeout
*/
constructor (driver, browser, timeout = 10000) {
constructor (driver, browser, extensionUrl, timeout = 10000) {
this.driver = driver
this.browser = browser
this.extensionUrl = extensionUrl
this.timeout = timeout
}
@ -84,6 +85,12 @@ class Driver {
assert.ok(!dataTab, 'Found element that should not be present')
}
// Navigation
async navigate (page = Driver.PAGES.HOME) {
return await this.driver.get(`${this.extensionUrl}/${page}.html`)
}
// Window management
async openNewPage (url) {
@ -173,4 +180,10 @@ class Driver {
}
}
Driver.PAGES = {
HOME: 'home',
NOTIFICATION: 'notification',
POPUP: 'popup',
}
module.exports = Driver

View File

@ -52,7 +52,7 @@ class FirefoxDriver {
return {
driver,
extensionId,
extensionUrl: `moz-extension://${internalExtensionId}/home.html`,
extensionUrl: `moz-extension://${internalExtensionId}`,
}
}

View File

@ -10,14 +10,12 @@ async function buildWebDriver ({ responsive, port } = {}) {
const { driver: seleniumDriver, extensionId, extensionUrl } = await buildBrowserWebDriver(browser, { extensionPath, responsive, port })
setupFetchMocking(seleniumDriver)
await seleniumDriver.get(extensionUrl)
const driver = new Driver(seleniumDriver, browser)
const driver = new Driver(seleniumDriver, browser, extensionUrl)
await driver.navigate()
return {
driver,
extensionId,
extensionUrl,
}
}