Skip to content

Commit

Permalink
fix: fix webdriver.io setup with TS
Browse files Browse the repository at this point in the history
  • Loading branch information
sodatea committed Aug 5, 2020
1 parent fe90abd commit 467e577
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 18 deletions.
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -56,7 +56,7 @@
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "^10.1.0",
"babel-jest": "^24.9.0",
"chromedriver": "^81.0.0",
"chromedriver": "^84.0.1",
"debug": "^4.1.0",
"eslint": "^6.7.2",
"eslint-plugin-import": "^2.20.2",
Expand Down
4 changes: 4 additions & 0 deletions packages/@vue/cli-plugin-e2e-webdriverio/generator/index.js
Expand Up @@ -11,6 +11,10 @@ module.exports = (api, { webdrivers }) => {
// Use devDependencies to store latest version number so as to automate update
const pluginDeps = require('../package.json').devDependencies

if (api.hasPlugin('typescript')) {
devDependencies['ts-node'] = pluginDeps['ts-node']
}

if (webdrivers && webdrivers.includes('firefox')) {
devDependencies.geckodriver = pluginDeps.geckodriver
devDependencies['wdio-geckodriver-service'] = pluginDeps['wdio-geckodriver-service']
Expand Down
Expand Up @@ -11,6 +11,9 @@ exports.config = {
// directory is where your package.json resides, so `wdio` will be called from there.
//
specs: [
<%_ if (hasTS) { _%>
path.join(__dirname, '/tests/e2e/**/*.spec.ts'),
<%_ } _%>
path.join(__dirname, '/tests/e2e/**/*.spec.js')
],
// Patterns to exclude.
Expand Down Expand Up @@ -61,7 +64,9 @@ exports.config = {
mochaOpts: {
ui: 'bdd',
timeout: 30000,
<%- hasTS ? 'require: \'ts-node/register\'' : '' %>
<%_ if (hasTS) { _%>
require: 'ts-node/register',
<%_ } _%>
},
//
// =====
Expand Down
12 changes: 9 additions & 3 deletions packages/@vue/cli-plugin-e2e-webdriverio/index.js
Expand Up @@ -9,6 +9,7 @@ const CLI_OPTIONS = Object.entries(cmdArgs).reduce((obj, [param, { desc }]) => {
return obj
}, {})

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

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

if (isTS) {
// make sure ts-node runs with commonjs format, as it does not support esm
process.env.TS_NODE_COMPILER_OPTIONS = '{ "module": "commonjs" }'
}

const runArgs = ['run', configFile, ...rawArgs]
info(`Start WebdriverIO: $ wdio ${runArgs.join(' ')}`)
const runner = execa(wdioBinPath, runArgs, { stdio: 'inherit' })
Expand Down
1 change: 1 addition & 0 deletions packages/@vue/cli-plugin-e2e-webdriverio/package.json
Expand Up @@ -58,6 +58,7 @@
"devDependencies": {
"chromedriver": "^84.0.1",
"geckodriver": "^1.20.0",
"ts-node": "^8.10.2",
"wdio-chromedriver-service": "^6.0.3",
"wdio-geckodriver-service": "^1.1.0"
}
Expand Down
14 changes: 1 addition & 13 deletions yarn.lock
Expand Up @@ -6160,18 +6160,6 @@ chrome-trace-event@^1.0.2:
dependencies:
tslib "^1.9.0"

chromedriver@^81.0.0:
version "81.0.0"
resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-81.0.0.tgz#690ba333aedf2b4c4933b6590c3242d3e5f28f3c"
integrity sha512-BA++IQ7O1FzHmNpzMlOfLiSBvPZ946uuhtJjZHEIr/Gb+Ha9jiuGbHiT45l6O3XGbQ8BAwvbmdisjl4rTxro4A==
dependencies:
"@testim/chrome-version" "^1.0.7"
axios "^0.19.2"
del "^5.1.0"
extract-zip "^2.0.0"
mkdirp "^1.0.4"
tcp-port-used "^1.0.1"

chromedriver@^84.0.1:
version "84.0.1"
resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-84.0.1.tgz#eaca7723f1a58c262a5c521b8596769af40b0d4f"
Expand Down Expand Up @@ -19119,7 +19107,7 @@ ts-loader@^6.2.2:
micromatch "^4.0.0"
semver "^6.0.0"

ts-node@^8, ts-node@^8.4.1:
ts-node@^8, ts-node@^8.10.2, ts-node@^8.4.1:
version "8.10.2"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d"
integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==
Expand Down

0 comments on commit 467e577

Please sign in to comment.