Skip to content

Commit d35c15e

Browse files
fix(e2e-webdriverio): PR feedback
1 parent 3c799cc commit d35c15e

File tree

11 files changed

+1879
-853
lines changed

11 files changed

+1879
-853
lines changed

packages/@vue/cli-plugin-e2e-webdriverio/generator/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ module.exports = (api, { webdrivers }) => {
1313

1414
if (webdrivers && webdrivers.includes('firefox')) {
1515
devDependencies.geckodriver = pluginDeps.geckodriver
16+
devDependencies['wdio-geckodriver-service'] = pluginDeps['wdio-geckodriver-service']
1617
}
1718
if (webdrivers && webdrivers.includes('chrome')) {
1819
// chromedriver major version bumps every 6 weeks following Chrome
1920
// so there may be a mismatch between
2021
// user's installed browser version and the default provided version
2122
// fallback to the devDependencies version in case detection fails
23+
devDependencies['wdio-chromedriver-service'] = pluginDeps['wdio-chromedriver-service']
2224
devDependencies.chromedriver = installedBrowsers.chrome
2325
? installedBrowsers.chrome.match(/^(\d+)\./)[1]
2426
: pluginDeps.chromedriver

packages/@vue/cli-plugin-e2e-webdriverio/generator/template/tests/e2e/pageobjects/app.js renamed to packages/@vue/cli-plugin-e2e-webdriverio/generator/template/tests/e2e/pageobjects/app.page.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ class App {
1212
}
1313
}
1414

15-
module.exports = new App()
15+
<%- hasTS ? 'export default new App()' : 'module.exports = new App()' %>
16+
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
const App = require('../pageobjects/app')
1+
<%- hasTS ? 'import App from \'../pageobjects/app.page\'' : 'const App = require(\'../pageobjects/app.page\')' %>
22

33
describe('Vue.js app', () => {
44
it('should open and render', () => {
55
App.open()
6-
expect(App.heading).toHaveText('Welcome to Your Vue.js App')
6+
expect(App.heading).toHaveText('Welcome to Your Vue.js <%- hasTS ? '+ TypeScript ' : '' %>App')
77
})
88
})

packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.local.conf.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { config } = require('./wdio.shared.conf')
1+
<%- hasTS ? 'const { config } = require(\'./wdio.shared.conf.ts\')' : 'const { config } = require(\'./wdio.shared.conf\')' %>
22

33
exports.config = {
44
/**
@@ -9,13 +9,17 @@ exports.config = {
99
* config for local testing
1010
*/
1111
maxInstances: 1,
12-
services: ['chromedriver'],
12+
services: ['chromedriver', 'geckodriver'],
1313
capabilities: [{
1414
browserName: 'chrome',
15+
acceptInsecureCerts: true,
1516
'goog:chromeOptions': {
1617
args: process.argv.includes('--headless')
1718
? ['--headless', '--disable-gpu']
1819
: []
1920
}
21+
}, {
22+
browserName: 'firefox',
23+
acceptInsecureCerts: true
2024
}]
2125
}

packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.sauce.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { config } = require('./wdio.shared.conf')
1+
<%- hasTS ? 'import { config } from \'./wdio.shared.conf.ts\'' : 'const { config } = require(\'./wdio.shared.conf\')' %>
22

33
const BUILD_ID = Math.ceil(Date.now() / 1000)
44

packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.shared.conf.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/* eslint-disable no-unused-vars */
2+
const path = require('path')
23

34
exports.config = {
45
// ==================
@@ -10,7 +11,7 @@ exports.config = {
1011
// directory is where your package.json resides, so `wdio` will be called from there.
1112
//
1213
specs: [
13-
__dirname + '/tests/e2e/**/*.spec.js'
14+
path.join(__dirname, '/tests/e2e/**/*.spec.js')
1415
],
1516
// Patterns to exclude.
1617
exclude: [
@@ -27,7 +28,7 @@ exports.config = {
2728
logLevel: 'trace',
2829
//
2930
// Set directory to store all logs into
30-
outputDir: __dirname + '/logs',
31+
outputDir: path.join(__dirname, '/logs'),
3132
//
3233
// If you only want to run your tests until a specific amount of tests have failed use
3334
// bail (default is 0 - don't bail, run all tests).
@@ -60,6 +61,7 @@ exports.config = {
6061
mochaOpts: {
6162
ui: 'bdd',
6263
timeout: 30000,
64+
<%- hasTS ? 'require: \'ts-node/register\'' : '' %>
6365
},
6466
//
6567
// =====

packages/@vue/cli-plugin-e2e-webdriverio/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const fs = require('fs')
12
const path = require('path')
23

34
const { info, chalk, execa } = require('@vue/cli-shared-utils')
@@ -32,9 +33,10 @@ module.exports = (api, options) => {
3233
rawArgs.push(`--baseUrl=${url}`)
3334
}
3435

36+
const isTS = fs.existsSync(path.join(process.cwd(), 'tsconfig.json'))
3537
const configFile = !args.remote
36-
? path.join(process.cwd(), 'tests', 'wdio.local.conf.js')
37-
: path.join(process.cwd(), 'tests', 'wdio.sauce.conf.js')
38+
? path.join(process.cwd(), 'wdio.local.conf.' + (isTS ? 'ts' : 'js'))
39+
: path.join(process.cwd(), 'wdio.sauce.conf.' + (isTS ? 'ts' : 'js'))
3840
const wdioBinPath = require.resolve('@wdio/cli/bin/wdio')
3941

4042
const runArgs = ['run', configFile, ...rawArgs]

packages/@vue/cli-plugin-e2e-webdriverio/package.json

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,18 @@
3333
"@wdio/spec-reporter": "^6.1.9",
3434
"@wdio/sync": "^6.1.8",
3535
"eslint-plugin-wdio": "^6.0.12",
36-
"webdriverio": "^6.1.11",
37-
"wdio-chromedriver-service": "^6.0.3"
36+
"webdriverio": "^6.1.11"
3837
},
3938
"peerDependencies": {
40-
"chromedriver": "*"
39+
"chromedriver": "*",
40+
"geckodriver": "*",
41+
"wdio-chromedriver-service": "^6.0.3",
42+
"wdio-geckodriver-service": "^1.1.0"
4143
},
42-
"devDependencies": {}
44+
"devDependencies": {
45+
"chromedriver": "*",
46+
"geckodriver": "*",
47+
"wdio-chromedriver-service": "^6.0.3",
48+
"wdio-geckodriver-service": "^1.1.0"
49+
}
4350
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const { installedBrowsers } = require('@vue/cli-shared-utils')
2+
3+
module.exports = [
4+
{
5+
name: 'webdrivers',
6+
type: `checkbox`,
7+
message: `Pick browsers to run end-to-end test on!!!!!`,
8+
choices: [
9+
{
10+
name: `Chrome`,
11+
value: 'chrome',
12+
checked: true
13+
},
14+
{
15+
name: 'Firefox',
16+
value: 'firefox',
17+
// check the "Firefox" option if user has installed it
18+
checked: !!installedBrowsers.firefox
19+
}
20+
]
21+
}
22+
]

packages/@vue/cli/lib/promptModules/e2e.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ module.exports = cli => {
3636

3737
cli.injectPrompt({
3838
name: 'webdrivers',
39-
when: answers => answers.e2e === 'nightwatch',
39+
when: answers => ['nightwatch', 'webdriverio'].includes(answers.e2e),
4040
type: `checkbox`,
4141
message: `Pick browsers to run end-to-end test on`,
4242
choices: [

0 commit comments

Comments
 (0)