From 79d98a805df3a12fb320a8642f68df7f6d28da6b Mon Sep 17 00:00:00 2001 From: christian-bromann Date: Thu, 14 May 2020 12:01:48 +0200 Subject: [PATCH] test(e2e-webdriverio): add integration tests --- .../__tests__/wdioPlugin.spec.js | 41 +++++++++++++++++++ .../generator/template/wdio.local.conf.js | 3 -- .../@vue/cli-plugin-e2e-webdriverio/ui.js | 2 +- .../lib/promptModules/__tests__/e2e.spec.js | 32 ++++++++++++++- packages/@vue/cli/lib/promptModules/e2e.js | 2 +- 5 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioPlugin.spec.js diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioPlugin.spec.js b/packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioPlugin.spec.js new file mode 100644 index 0000000000..6e5678adea --- /dev/null +++ b/packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioPlugin.spec.js @@ -0,0 +1,41 @@ +jest.setTimeout(process.env.APPVEYOR ? 120000 : 60000) + +const create = require('@vue/cli-test-utils/createTestProject') + +test('should work', async () => { + const project = await create('e2e-webdriverio', { + plugins: { + '@vue/cli-plugin-babel': {}, + '@vue/cli-plugin-e2e-webdriverio': {}, + '@vue/cli-plugin-eslint': { + config: 'airbnb', + lintOn: 'save' + } + } + }) + + if (!process.env.CI) { + await project.run(`vue-cli-service test:e2e`) + } else if (!process.env.APPVEYOR) { + await project.run(`vue-cli-service test:e2e --headless`) + } +}) + +test('should work with TS', async () => { + const project = await create('e2e-webdriverio-ts', { + plugins: { + '@vue/cli-plugin-typescript': { + 'classComponent': true, + 'tsLint': true, + 'lintOn': ['save'] + }, + '@vue/cli-plugin-e2e-webdriverio': {} + } + }) + + if (!process.env.CI) { + await project.run(`vue-cli-service test:e2e`) + } else if (!process.env.APPVEYOR) { + await project.run(`vue-cli-service test:e2e --headless`) + } +}) diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.local.conf.js b/packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.local.conf.js index 92111d3e40..d2cc19cd4d 100644 --- a/packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.local.conf.js +++ b/packages/@vue/cli-plugin-e2e-webdriverio/generator/template/wdio.local.conf.js @@ -19,6 +19,3 @@ exports.config = { } }] } - - -console.log(process.argv); diff --git a/packages/@vue/cli-plugin-e2e-webdriverio/ui.js b/packages/@vue/cli-plugin-e2e-webdriverio/ui.js index b558cf516c..4166bdade9 100644 --- a/packages/@vue/cli-plugin-e2e-webdriverio/ui.js +++ b/packages/@vue/cli-plugin-e2e-webdriverio/ui.js @@ -2,7 +2,7 @@ module.exports = api => { api.describeTask({ match: /vue-cli-service test:e2e/, description: 'org.vue.webdriverio.tasks.test.description', - link: 'https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-e2e-webdriverio#injected-commands', + link: 'https://github.com/vuejs/vue-cli', prompts: [], onBeforeRun: () => {} }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/e2e.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/e2e.spec.js index 5b7ca9beeb..cadfedaed7 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/e2e.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/e2e.spec.js @@ -14,7 +14,7 @@ test('cypress', async () => { }, { message: 'Pick an E2E testing solution', - choices: ['Cypress', 'Nightwatch'], + choices: ['Cypress', 'Nightwatch', 'WebdriverIO'], choose: 0 } ] @@ -42,7 +42,7 @@ test('nightwatch', async () => { }, { message: 'Pick an E2E testing solution', - choices: ['Cypress', 'Nightwatch'], + choices: ['Cypress', 'Nightwatch', 'WebdriverIO'], choose: 1 }, { @@ -65,3 +65,31 @@ test('nightwatch', async () => { { pluginsOnly: true } ) }) + +test('webdriverio', async () => { + const expectedPrompts = [ + { + message: 'features', + choices: ['E2E Testing'], + check: [0] + }, + { + message: 'Pick an E2E testing solution', + choices: ['Cypress', 'Nightwatch', 'WebdriverIO'], + choose: 2 + } + ] + + const expectedOptions = { + plugins: { + '@vue/cli-plugin-e2e-webdriverio': {} + } + } + + await assertPromptModule( + moduleToTest, + expectedPrompts, + expectedOptions, + { pluginsOnly: true } + ) +}) diff --git a/packages/@vue/cli/lib/promptModules/e2e.js b/packages/@vue/cli/lib/promptModules/e2e.js index 6b1668beb4..108141d0fd 100644 --- a/packages/@vue/cli/lib/promptModules/e2e.js +++ b/packages/@vue/cli/lib/promptModules/e2e.js @@ -27,7 +27,7 @@ module.exports = cli => { short: 'Nightwatch' }, { - name: 'WebDriverIO (WebDriver/DevTools based)', + name: 'WebdriverIO (WebDriver/DevTools based)', value: 'webdriverio', short: 'WebdriverIO' }