Skip to content

Commit 467e577

Browse files
committed
fix: fix webdriver.io setup with TS
1 parent fe90abd commit 467e577

File tree

6 files changed

+22
-18
lines changed

6 files changed

+22
-18
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"babel-core": "7.0.0-bridge.0",
5757
"babel-eslint": "^10.1.0",
5858
"babel-jest": "^24.9.0",
59-
"chromedriver": "^81.0.0",
59+
"chromedriver": "^84.0.1",
6060
"debug": "^4.1.0",
6161
"eslint": "^6.7.2",
6262
"eslint-plugin-import": "^2.20.2",

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ module.exports = (api, { webdrivers }) => {
1111
// Use devDependencies to store latest version number so as to automate update
1212
const pluginDeps = require('../package.json').devDependencies
1313

14+
if (api.hasPlugin('typescript')) {
15+
devDependencies['ts-node'] = pluginDeps['ts-node']
16+
}
17+
1418
if (webdrivers && webdrivers.includes('firefox')) {
1519
devDependencies.geckodriver = pluginDeps.geckodriver
1620
devDependencies['wdio-geckodriver-service'] = pluginDeps['wdio-geckodriver-service']

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ exports.config = {
1111
// directory is where your package.json resides, so `wdio` will be called from there.
1212
//
1313
specs: [
14+
<%_ if (hasTS) { _%>
15+
path.join(__dirname, '/tests/e2e/**/*.spec.ts'),
16+
<%_ } _%>
1417
path.join(__dirname, '/tests/e2e/**/*.spec.js')
1518
],
1619
// Patterns to exclude.
@@ -61,7 +64,9 @@ exports.config = {
6164
mochaOpts: {
6265
ui: 'bdd',
6366
timeout: 30000,
64-
<%- hasTS ? 'require: \'ts-node/register\'' : '' %>
67+
<%_ if (hasTS) { _%>
68+
require: 'ts-node/register',
69+
<%_ } _%>
6570
},
6671
//
6772
// =====

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const CLI_OPTIONS = Object.entries(cmdArgs).reduce((obj, [param, { desc }]) => {
99
return obj
1010
}, {})
1111

12+
/** @type {import('@vue/cli-service').ServicePlugin} */
1213
module.exports = (api, options) => {
1314
api.registerCommand('test:e2e', {
1415
description: 'run end-to-end tests with WebdriverIO',
@@ -33,12 +34,17 @@ module.exports = (api, options) => {
3334
rawArgs.push(`--baseUrl=${url}`)
3435
}
3536

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

43+
if (isTS) {
44+
// make sure ts-node runs with commonjs format, as it does not support esm
45+
process.env.TS_NODE_COMPILER_OPTIONS = '{ "module": "commonjs" }'
46+
}
47+
4248
const runArgs = ['run', configFile, ...rawArgs]
4349
info(`Start WebdriverIO: $ wdio ${runArgs.join(' ')}`)
4450
const runner = execa(wdioBinPath, runArgs, { stdio: 'inherit' })

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
"devDependencies": {
5959
"chromedriver": "^84.0.1",
6060
"geckodriver": "^1.20.0",
61+
"ts-node": "^8.10.2",
6162
"wdio-chromedriver-service": "^6.0.3",
6263
"wdio-geckodriver-service": "^1.1.0"
6364
}

yarn.lock

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6160,18 +6160,6 @@ chrome-trace-event@^1.0.2:
61606160
dependencies:
61616161
tslib "^1.9.0"
61626162

6163-
chromedriver@^81.0.0:
6164-
version "81.0.0"
6165-
resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-81.0.0.tgz#690ba333aedf2b4c4933b6590c3242d3e5f28f3c"
6166-
integrity sha512-BA++IQ7O1FzHmNpzMlOfLiSBvPZ946uuhtJjZHEIr/Gb+Ha9jiuGbHiT45l6O3XGbQ8BAwvbmdisjl4rTxro4A==
6167-
dependencies:
6168-
"@testim/chrome-version" "^1.0.7"
6169-
axios "^0.19.2"
6170-
del "^5.1.0"
6171-
extract-zip "^2.0.0"
6172-
mkdirp "^1.0.4"
6173-
tcp-port-used "^1.0.1"
6174-
61756163
chromedriver@^84.0.1:
61766164
version "84.0.1"
61776165
resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-84.0.1.tgz#eaca7723f1a58c262a5c521b8596769af40b0d4f"
@@ -19119,7 +19107,7 @@ ts-loader@^6.2.2:
1911919107
micromatch "^4.0.0"
1912019108
semver "^6.0.0"
1912119109

19122-
ts-node@^8, ts-node@^8.4.1:
19110+
ts-node@^8, ts-node@^8.10.2, ts-node@^8.4.1:
1912319111
version "8.10.2"
1912419112
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d"
1912519113
integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==

0 commit comments

Comments
 (0)