From 5221a005507c875eecd61045cf4247a097b7ffdd Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Fri, 19 Feb 2021 22:56:12 +0800 Subject: [PATCH 1/2] feat!: update WebDriverIO to v7 --- docs/migrations/migrate-from-v4.md | 4 ++++ .../__tests__/wdioGenerator.spec.js | 2 +- .../generator/index.js | 2 +- .../generator/template/wdio.shared.conf.js | 10 ---------- .../migrator/index.js | 7 +++++++ .../cli-plugin-e2e-webdriverio/package.json | 18 +++++++++--------- .../generator/template/tsconfig.json | 2 +- 7 files changed, 23 insertions(+), 22 deletions(-) create mode 100644 packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js diff --git a/docs/migrations/migrate-from-v4.md b/docs/migrations/migrate-from-v4.md index 3e797b4a64..5a8067d1ec 100644 --- a/docs/migrations/migrate-from-v4.md +++ b/docs/migrations/migrate-from-v4.md @@ -111,6 +111,10 @@ Please consider switching to ESLint. You can check out [`tslint-to-eslint-config * Cypress is required as a peer dependency. * Cypress is updated from v3 to v6. See [Cypress Migration Guide](https://docs.cypress.io/guides/references/migration-guide.html) for detailed instructions of the migration process. +### E2E-WebDriverIO Plugin + +* WebDriverIO is updated from v6 to v7. Not many user-facing breaking changes. See the [blog post on release](https://webdriver.io/blog/2021/02/09/webdriverio-v7-released) for more details. + ### Unit-Jest Plugin * The underlying `jest`-related packages are upgraded from v24 to v26. For most users the transition would be seamless. See their corresponding changelogs for more detail: diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioGenerator.spec.js b/packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioGenerator.spec.js index 30f7661d5f..01d8ca0489 100644 --- a/packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioGenerator.spec.js +++ b/packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioGenerator.spec.js @@ -19,5 +19,5 @@ test('should add types to existing tsconfig.json', async () => { const tsconfig = await read('tsconfig.json') expect(tsconfig).toMatch(/\r?\n$/) expect(JSON.parse(tsconfig).compilerOptions.types) - .toEqual(['some-type', 'mocha', '@wdio/mocha-framework', '@wdio/sync']) + .toEqual(['some-type', 'mocha', '@wdio/mocha-framework', 'webdriverio/sync']) }) diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/generator/index.js b/packages/@vue/cli-plugin-e2e-webdriverio/generator/index.js index 61a14d0e62..dcfb46e307 100644 --- a/packages/@vue/cli-plugin-e2e-webdriverio/generator/index.js +++ b/packages/@vue/cli-plugin-e2e-webdriverio/generator/index.js @@ -15,7 +15,7 @@ const applyTS = module.exports.applyTS = (api, invoking) => { const parsed = JSON.parse(tsconfig) const types = parsed.compilerOptions.types if (types) { - for (const t of ['mocha', '@wdio/mocha-framework', '@wdio/sync']) { + for (const t of ['mocha', '@wdio/mocha-framework', 'webdriverio/sync']) { if (!types.includes(t)) { types.push(t) } diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.shared.conf.js b/packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.shared.conf.js index f0d7c425ed..e10aa63f61 100644 --- a/packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.shared.conf.js +++ b/packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.shared.conf.js @@ -59,16 +59,6 @@ exports.config = { // see also: https://webdriver.io/docs/dot-reporter.html reporters: ['spec'], // - // Options to be passed to Mocha. - // See the full list at http://mochajs.org/ - mochaOpts: { - ui: 'bdd', - timeout: 30000, - <%_ if (hasTS) { _%> - require: 'ts-node/register', - <%_ } _%> - }, - // // ===== // Hooks // ===== diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js b/packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js new file mode 100644 index 0000000000..efeaba8d95 --- /dev/null +++ b/packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js @@ -0,0 +1,7 @@ +module.exports = (api) => { + if (api.fromVersion('<= 5.0.0-alpha.4')) { + api.render(files => { + files['tsconfig.json'] = files['tsconfig.json'].replace('"@wdio/sync"', '"webdriverio/sync"') + }) + } +} diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/package.json b/packages/@vue/cli-plugin-e2e-webdriverio/package.json index c989940647..0a3b3860e3 100644 --- a/packages/@vue/cli-plugin-e2e-webdriverio/package.json +++ b/packages/@vue/cli-plugin-e2e-webdriverio/package.json @@ -27,19 +27,19 @@ "dependencies": { "@types/mocha": "^8.2.1", "@vue/cli-shared-utils": "^5.0.0-alpha.4", - "@wdio/cli": "^6.10.5", - "@wdio/local-runner": "^6.10.5", - "@wdio/mocha-framework": "^6.10.4", - "@wdio/sauce-service": "^6.10.4", - "@wdio/spec-reporter": "^6.8.1", - "@wdio/sync": "^6.10.4", - "eslint-plugin-wdio": "^6.0.12", - "webdriverio": "^6.10.5" + "@wdio/cli": "^7.0.7", + "@wdio/local-runner": "^7.0.7", + "@wdio/mocha-framework": "^7.0.7", + "@wdio/sauce-service": "^7.0.7", + "@wdio/spec-reporter": "^7.0.7", + "@wdio/sync": "^7.0.7", + "eslint-plugin-wdio": "^7.0.0", + "webdriverio": "^7.0.7" }, "peerDependencies": { "chromedriver": "*", "geckodriver": "*", - "wdio-chromedriver-service": "^6.0.4", + "wdio-chromedriver-service": "^7.0.0", "wdio-geckodriver-service": "^1.1.2" }, "peerDependenciesMeta": { diff --git a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json index c616620498..3ca778fd51 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json +++ b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json @@ -25,7 +25,7 @@ <%_ if (hasWebDriverIO) { _%> <% if (!hasMocha && !hasJest) { %>"mocha",<% } %> "@wdio/mocha-framework", - "@wdio/sync"<% if (hasMocha || hasJest) { %>,<% } %> + "webdriverio/sync"<% if (hasMocha || hasJest) { %>,<% } %> <%_ } _%> <%_ if (hasMocha) { _%> "mocha", From 1897fa024eb7fc59ab992c5463833a1da3b64845 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Sat, 20 Feb 2021 15:21:23 +0800 Subject: [PATCH 2/2] fix: don't throw when tsconfig doesn't exist --- packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js b/packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js index efeaba8d95..976782c7ec 100644 --- a/packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js +++ b/packages/@vue/cli-plugin-e2e-webdriverio/migrator/index.js @@ -1,6 +1,10 @@ module.exports = (api) => { if (api.fromVersion('<= 5.0.0-alpha.4')) { api.render(files => { + if (!files['tsconfig.json']) { + return + } + files['tsconfig.json'] = files['tsconfig.json'].replace('"@wdio/sync"', '"webdriverio/sync"') }) }