better run e2e script

stable
Juanfran 2015-10-29 09:58:47 +01:00
parent 751e936ff1
commit 120dd97ed4
3 changed files with 88 additions and 28 deletions

View File

@ -18,11 +18,12 @@
"scripts": {
"scss-lint": "gulp scss-lint --fail",
"test": "./node_modules/karma/bin/karma start",
"e2e": "./run-e2e.sh"
"e2e": "node ./node_modules/babel/bin/babel-node.js --stage=1 ./run-e2e.js"
},
"devDependencies": {
"angular-mocks": "^1.5.0-beta.0",
"babel": "^5.6.5",
"bluebird": "^3.0.2",
"chai": "^3.3.0",
"chai-as-promised": "^5.1.0",
"chai-jquery": "^2.0.0",

86
run-e2e.js Normal file
View File

@ -0,0 +1,86 @@
var argv = require('minimist')(process.argv.slice(2));
var child_process = require('child_process');
var inquirer = require("inquirer");
var Promise = require('bluebird');
var suites = [
'auth',
'public',
'wiki',
'admin',
'issues',
'tasks',
'userProfile',
'userStories',
'backlog',
'home',
'kanban',
'projectHome',
'search',
'team'
];
var lunchSuites = [];
if (argv.s) {
suites = argv.s.split(',');
}
function backup() {
child_process.spawnSync('pg_dump', ['-c', '-d', 'taiga', '-f', 'tmp/taiga.sql'], {stdio: "inherit"});
}
function launchProtractor(suit) {
child_process.spawnSync('protractor', ['conf.e2e.js', '--suite=' + suit], {stdio: "inherit"});
}
function restoreBackup() {
child_process.spawnSync('psql', ['-d', 'taiga', '-f', 'tmp/taiga.sql']);
}
function ask() {
return new Promise(function(resolve) {
if (argv.a && suites.length) {
inquirer.prompt([{
type: 'list',
name: 'next',
message: 'Launch ' + suites[0] + '?',
default: 'Yes',
choices: [
'Yes',
'No'
]
}], function( answers ) {
if(answers.next === 'Yes') {
resolve(true);
} else {
resolve(false);
}
});
} else if(suites.length) {
resolve(true);
} else {
resolve(false);
}
});
}
async function launch () {
backup();
var next = true;
while (next) {
var suite = suites.shift();
console.log('running: ' + suite);
launchProtractor(suite);
restoreBackup();
next = await ask();
}
}
launch();

View File

@ -1,27 +0,0 @@
#!/bin/bash
suites=(
'auth'
'public'
'wiki'
'admin'
'issues'
'tasks'
'userProfile'
'userStories'
'backlog'
'home'
'kanban'
'projectHome'
'search'
'team'
)
pg_dump -c taiga > tmp/taiga.sql
for i in ${suites[@]}
do
protractor conf.e2e.js --suite=$i
psql taiga < tmp/taiga.sql > /dev/null
done