From 75b450b4f54c83d6d8a1d1eaf422d172b53cdec5 Mon Sep 17 00:00:00 2001 From: Ken Sodemann Date: Thu, 2 Nov 2017 21:31:22 -0500 Subject: [PATCH] refactor(e2e-test): move register into the runner --- packages/core/package.json | 4 +- packages/core/scripts/e2e-test-runner.js | 41 +++++++++++++++++-- packages/core/scripts/e2e.js | 3 ++ packages/core/scripts/register-e2e-test.js | 37 ----------------- .../action-sheet/test/basic.e2e-spec.js | 2 +- .../components/button/test/basic.e2e-spec.js | 2 +- .../button/test/toolbar.e2e-spec.js | 2 +- 7 files changed, 46 insertions(+), 45 deletions(-) create mode 100644 packages/core/scripts/e2e.js delete mode 100644 packages/core/scripts/register-e2e-test.js diff --git a/packages/core/package.json b/packages/core/package.json index ec3939f209..2f8357962c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -24,8 +24,8 @@ "scripts": { "build": "stencil build", "dev": "sd concurrent \"stencil build --dev --watch\" \"stencil-dev-server\"", - "e2e": "node ./scripts/e2e-test-runner.js", - "snapshot": "node ./scripts/e2e-test-runner.js --snapshot", + "e2e": "node ./scripts/e2e.js", + "snapshot": "node ./scripts/e2e.js --snapshot", "test": "jest --no-cache", "test.watch": "jest --watch --no-cache", "clean": "rm -rf dist", diff --git a/packages/core/scripts/e2e-test-runner.js b/packages/core/scripts/e2e-test-runner.js index 47363dd0b6..dfa90c79f2 100644 --- a/packages/core/scripts/e2e-test-runner.js +++ b/packages/core/scripts/e2e-test-runner.js @@ -1,8 +1,15 @@ 'use strict'; +const fs = require('fs'); const glob = require('glob'); const Mocha = require('mocha'); const path = require('path'); +const webdriver = require('selenium-webdriver'); + +const Snapshot = require('./Snapshot'); + +let snapshot; +let takeScreenshots = false; function startDevServer() { const server = require('@stencil/dev-server/dist'); // TODO: fix after stencil-dev-server PR #16 is merged @@ -27,12 +34,26 @@ function getTestFiles() { function processCommandLine() { process.argv.forEach(arg => { if (arg === '--snapshot') { - process.env.takeScreenshots = true; + takeScreenshots = true; } }); } -(async () => { +function registerE2ETest(desc, tst) { + // NOTE: Do not use an arrow function here because: https://mochajs.org/#arrow-functions + it(desc, async function() { + const driver = new webdriver.Builder().forBrowser('chrome').build(); + await tst(driver); + if (takeScreenshots) { + await snapshot.takeScreenshot(driver, { + name: this.test.fullTitle() + }); + } + return driver.quit(); + }); +} + +async function run() { const mocha = new Mocha({ timeout: 5000, slow: 2000 @@ -40,6 +61,15 @@ function processCommandLine() { processCommandLine(); + snapshot = new Snapshot({ + platformDefaults: { + params: { + height: 800, + width: 400 + } + } + }); + const devServer = await startDevServer(); const files = await getTestFiles(); @@ -50,4 +80,9 @@ function processCommandLine() { }); devServer.close(); }); -})(); +} + +module.exports = { + register: registerE2ETest, + run: run +}; diff --git a/packages/core/scripts/e2e.js b/packages/core/scripts/e2e.js new file mode 100644 index 0000000000..c6eb7cb3dc --- /dev/null +++ b/packages/core/scripts/e2e.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./e2e-test-runner').run(); diff --git a/packages/core/scripts/register-e2e-test.js b/packages/core/scripts/register-e2e-test.js deleted file mode 100644 index 76e1a030cd..0000000000 --- a/packages/core/scripts/register-e2e-test.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -const fs = require('fs'); -const webdriver = require('selenium-webdriver'); -const Snapshot = require('./Snapshot'); - -let snapshotTool; -function getSnapshotTool() { - if (!snapshotTool) { - snapshotTool = new Snapshot({ - platformDefaults: { - params: { - height: 800, - width: 400 - } - } - }); - } - return snapshotTool; -} - -function registerE2ETest(desc, tst) { - // NOTE: Do not use an arrow function here because: https://mochajs.org/#arrow-functions - it(desc, async function() { - const driver = new webdriver.Builder().forBrowser('chrome').build(); - await tst(driver); - if (process.env.takeScreenshots) { - const snapshot = getSnapshotTool(); - await snapshot.takeScreenshot(driver, { - name: this.test.fullTitle() - }); - } - return driver.quit(); - }); -} - -module.exports = registerE2ETest; diff --git a/packages/core/src/components/action-sheet/test/basic.e2e-spec.js b/packages/core/src/components/action-sheet/test/basic.e2e-spec.js index 4c32fccc96..c887a9d928 100644 --- a/packages/core/src/components/action-sheet/test/basic.e2e-spec.js +++ b/packages/core/src/components/action-sheet/test/basic.e2e-spec.js @@ -4,7 +4,7 @@ const webdriver = require('selenium-webdriver'); const By = webdriver.By; const until = webdriver.until; -const register = require('../../../../scripts/register-e2e-test'); +const register = require('../../../../scripts/e2e-test-runner').register; const E2ETestPage = require('../../../../scripts/E2ETestPage'); class ActionSheetE2ETestPage extends E2ETestPage { diff --git a/packages/core/src/components/button/test/basic.e2e-spec.js b/packages/core/src/components/button/test/basic.e2e-spec.js index 748309c307..0d7c140e62 100644 --- a/packages/core/src/components/button/test/basic.e2e-spec.js +++ b/packages/core/src/components/button/test/basic.e2e-spec.js @@ -1,6 +1,6 @@ 'use strict'; -const register = require('../../../../scripts/register-e2e-test'); +const register = require('../../../../scripts/e2e-test-runner').register; const E2ETestPage = require('../../../../scripts/E2ETestPage'); describe('button: basic', () => { diff --git a/packages/core/src/components/button/test/toolbar.e2e-spec.js b/packages/core/src/components/button/test/toolbar.e2e-spec.js index b5b58a4bae..17003b793a 100644 --- a/packages/core/src/components/button/test/toolbar.e2e-spec.js +++ b/packages/core/src/components/button/test/toolbar.e2e-spec.js @@ -1,6 +1,6 @@ 'use strict'; -const register = require('../../../../scripts/register-e2e-test'); +const register = require('../../../../scripts/e2e-test-runner').register; const E2ETestPage = require('../../../../scripts/E2ETestPage'); describe('button: toolbar', () => {