diff --git a/package.json b/package.json index e3f368752c..2cb617e733 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "test:karma:watch": "karma start", "test:prepare:webdriver": "webdriver-manager update", "test:e2e:webdriver": "webdriver-manager start", - "test:e2e": "protractor protractor.conf.js", + "test:e2e": "protractor test/e2e/protractor.conf.js", "test:nodemon": "gulp test:nodemon", "start": "gulp run:dev", "sprites": "gulp sprites:compile", diff --git a/tasks/gulp-tests.js b/tasks/gulp-tests.js index 9922522fd4..bada857d36 100644 --- a/tasks/gulp-tests.js +++ b/tasks/gulp-tests.js @@ -269,9 +269,6 @@ gulp.task('test:e2e', ['test:prepare', 'test:prepare:server'], (cb) => { let runner = exec( 'npm run test:e2e', (err, stdout, stderr) => { - /* - * Note: As it stands, protractor wont report pending specs - */ support.forEach(kill); cb(err); } @@ -293,9 +290,6 @@ gulp.task('test:e2e:safe', ['test:prepare', 'test:prepare:server'], (cb) => { let runner = exec( 'npm run test:e2e', (err, stdout, stderr) => { - /* - * Note: As it stands, protractor wont report pending specs - */ let match = stdout.match(/(\d+) tests?.*(\d) failures?/); testResults.push({ diff --git a/test/e2e/helper.js b/test/e2e/helper.js new file mode 100644 index 0000000000..0f0a9cf44a --- /dev/null +++ b/test/e2e/helper.js @@ -0,0 +1,17 @@ +import fs from 'fs'; + +// based on https://github.com/angular/protractor/issues/114#issuecomment-29046939 +afterEach(async function () { + let lastTest = this.currentTest; + + if (lastTest.state === 'failed') { + let filename = `exception_${lastTest.title}.png`; + let png = await browser.takeScreenshot(); + let buffer = new Buffer(png, 'base64'); + let stream = fs.createWriteStream(filename); + + stream.write(buffer); + stream.end(); + } +}); + diff --git a/protractor.conf.js b/test/e2e/protractor.conf.js similarity index 70% rename from protractor.conf.js rename to test/e2e/protractor.conf.js index 41f2a699cc..630733c4f2 100644 --- a/protractor.conf.js +++ b/test/e2e/protractor.conf.js @@ -1,10 +1,13 @@ -'use strict' +'use strict'; + +let chai = require('chai'); +let chaiAsPromised = require('chai-as-promised'); require('babel-register'); require('babel-polyfill'); exports.config = { - specs: 'test/e2e/**/*.js', + specs: ['./helper.js', './**/*.test.js'], baseUrl: 'http://localhost:3003/', directConnect: true, seleniumAddress: 'http://localhost:4444/wd/hub', @@ -13,12 +16,10 @@ exports.config = { reporter: 'spec', slow: 6000, timeout: 10000, - compilers: 'js:babel-register' + compilers: 'js:babel-register', }, onPrepare: () => { browser.ignoreSynchronization = true; - let chai = require('chai'); - let chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); global.expect = chai.expect; diff --git a/test/e2e/front-page.test.js b/test/e2e/static-pages/front-page.test.js similarity index 76% rename from test/e2e/front-page.test.js rename to test/e2e/static-pages/front-page.test.js index d0504259fe..9d107389f6 100644 --- a/test/e2e/front-page.test.js +++ b/test/e2e/static-pages/front-page.test.js @@ -1,26 +1,9 @@ -import fs from 'fs'; - describe('Static Front Page', () => { beforeEach(() => { browser.get('/'); browser.sleep(1000); }); - // based on https://github.com/angular/protractor/issues/114#issuecomment-29046939 - afterEach(async function () { - let lastTest = this.currentTest; - - if (lastTest.state === 'failed') { - let filename = `exception_${lastTest.title}.png`; - let png = await browser.takeScreenshot(); - let buffer = new Buffer(png, 'base64'); - let stream = fs.createWriteStream(filename); - - stream.write(buffer); - stream.end(); - } - }); - it('shows the front page', async () => { let button = element(by.id('play-btn')); await expect(button.getText()).to.eventually.eql('Join for free');