mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 06:07:21 +01:00
refactor: Organize protractor setup
This commit is contained in:
@@ -99,7 +99,7 @@
|
|||||||
"test:karma:watch": "karma start",
|
"test:karma:watch": "karma start",
|
||||||
"test:prepare:webdriver": "webdriver-manager update",
|
"test:prepare:webdriver": "webdriver-manager update",
|
||||||
"test:e2e:webdriver": "webdriver-manager start",
|
"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",
|
"test:nodemon": "gulp test:nodemon",
|
||||||
"start": "gulp run:dev",
|
"start": "gulp run:dev",
|
||||||
"sprites": "gulp sprites:compile",
|
"sprites": "gulp sprites:compile",
|
||||||
|
|||||||
@@ -269,9 +269,6 @@ gulp.task('test:e2e', ['test:prepare', 'test:prepare:server'], (cb) => {
|
|||||||
let runner = exec(
|
let runner = exec(
|
||||||
'npm run test:e2e',
|
'npm run test:e2e',
|
||||||
(err, stdout, stderr) => {
|
(err, stdout, stderr) => {
|
||||||
/*
|
|
||||||
* Note: As it stands, protractor wont report pending specs
|
|
||||||
*/
|
|
||||||
support.forEach(kill);
|
support.forEach(kill);
|
||||||
cb(err);
|
cb(err);
|
||||||
}
|
}
|
||||||
@@ -293,9 +290,6 @@ gulp.task('test:e2e:safe', ['test:prepare', 'test:prepare:server'], (cb) => {
|
|||||||
let runner = exec(
|
let runner = exec(
|
||||||
'npm run test:e2e',
|
'npm run test:e2e',
|
||||||
(err, stdout, stderr) => {
|
(err, stdout, stderr) => {
|
||||||
/*
|
|
||||||
* Note: As it stands, protractor wont report pending specs
|
|
||||||
*/
|
|
||||||
let match = stdout.match(/(\d+) tests?.*(\d) failures?/);
|
let match = stdout.match(/(\d+) tests?.*(\d) failures?/);
|
||||||
|
|
||||||
testResults.push({
|
testResults.push({
|
||||||
|
|||||||
17
test/e2e/helper.js
Normal file
17
test/e2e/helper.js
Normal file
@@ -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();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
'use strict'
|
'use strict';
|
||||||
|
|
||||||
|
let chai = require('chai');
|
||||||
|
let chaiAsPromised = require('chai-as-promised');
|
||||||
|
|
||||||
require('babel-register');
|
require('babel-register');
|
||||||
require('babel-polyfill');
|
require('babel-polyfill');
|
||||||
|
|
||||||
exports.config = {
|
exports.config = {
|
||||||
specs: 'test/e2e/**/*.js',
|
specs: ['./helper.js', './**/*.test.js'],
|
||||||
baseUrl: 'http://localhost:3003/',
|
baseUrl: 'http://localhost:3003/',
|
||||||
directConnect: true,
|
directConnect: true,
|
||||||
seleniumAddress: 'http://localhost:4444/wd/hub',
|
seleniumAddress: 'http://localhost:4444/wd/hub',
|
||||||
@@ -13,12 +16,10 @@ exports.config = {
|
|||||||
reporter: 'spec',
|
reporter: 'spec',
|
||||||
slow: 6000,
|
slow: 6000,
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
compilers: 'js:babel-register'
|
compilers: 'js:babel-register',
|
||||||
},
|
},
|
||||||
onPrepare: () => {
|
onPrepare: () => {
|
||||||
browser.ignoreSynchronization = true;
|
browser.ignoreSynchronization = true;
|
||||||
let chai = require('chai');
|
|
||||||
let chaiAsPromised = require('chai-as-promised');
|
|
||||||
|
|
||||||
chai.use(chaiAsPromised);
|
chai.use(chaiAsPromised);
|
||||||
global.expect = chai.expect;
|
global.expect = chai.expect;
|
||||||
@@ -1,26 +1,9 @@
|
|||||||
import fs from 'fs';
|
|
||||||
|
|
||||||
describe('Static Front Page', () => {
|
describe('Static Front Page', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
browser.get('/');
|
browser.get('/');
|
||||||
browser.sleep(1000);
|
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 () => {
|
it('shows the front page', async () => {
|
||||||
let button = element(by.id('play-btn'));
|
let button = element(by.id('play-btn'));
|
||||||
await expect(button.getText()).to.eventually.eql('Join for free');
|
await expect(button.getText()).to.eventually.eql('Join for free');
|
||||||
Reference in New Issue
Block a user