Skip to content

Commit 2458315

Browse files
committed
debugging
1 parent 5b66ab3 commit 2458315

File tree

3 files changed

+53
-33
lines changed

3 files changed

+53
-33
lines changed

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
sudo: false
1+
dist: trusty
2+
sudo: required
23
env:
34
- NODE_VERSION=5 SCRIPT=lint
45
- NODE_VERSION=5 SCRIPT=test

addon/ng2/tasks/e2e.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ module.exports = Task.extend({
88
var ui = this.ui;
99

1010
return new Promise((resolve) => {
11-
exec(`npm run e2e -- ${this.project.ngConfig.e2e.protractor.config}`, (err, stdout) => {
11+
exec(`npm run e2e -- ${this.project.ngConfig.e2e.protractor.config}`, (err, stdout, stderr) => {
1212
ui.writeLine(stdout);
1313
if (err) {
14+
ui.writeLine(stderr);
1415
ui.writeLine(chalk.red('Some end-to-end tests failed, see above.'));
1516
} else {
1617
ui.writeLine(chalk.green('All end-to-end tests pass.'));

tests/e2e/e2e_workflow.spec.js

Lines changed: 49 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ var conf = require('ember-cli/tests/helpers/conf');
99
var sh = require('shelljs');
1010
var treeKill = require('tree-kill');
1111
var child_process = require('child_process');
12-
var Promise = require('ember-cli/lib/ext/promise');
13-
var execPromise = Promise.denodeify(child_process.exec);
1412
var ng = require('../helpers/ng');
1513
var root = path.join(process.cwd(), 'tmp');
1614

@@ -61,12 +59,12 @@ describe('Basic end-to-end Workflow', function () {
6159
expect(path.basename(process.cwd())).to.equal('test-project');
6260
});
6361

64-
it('Supports production builds via `ng build --environment=production`', function() {
62+
it('Supports production builds via `ng build -prod`', function() {
6563
this.timeout(420000);
6664

67-
// Can't user the `ng` helper because somewhere the environment gets
65+
// Can't use the `ng` helper because somewhere the environment gets
6866
// stuck to the first build done
69-
sh.exec(`${ngBin} build --environment=production`);
67+
sh.exec(`${ngBin} build -prod`);
7068
expect(existsSync(path.join(process.cwd(), 'dist'))).to.be.equal(true);
7169
var appBundlePath = path.join(process.cwd(), 'dist', 'app', 'index.js');
7270
var appBundleContent = fs.readFileSync(appBundlePath, { encoding: 'utf8' });
@@ -117,26 +115,36 @@ describe('Basic end-to-end Workflow', function () {
117115
});
118116

119117
it('Serve and run e2e tests after initial build', function () {
120-
this.timeout(420000);
118+
this.timeout(240000);
121119

122120
var ngServePid;
123121

124122
function executor(resolve, reject) {
125-
var serveFailedMsg = 'ng serve command failed';
126-
var e2eFailedMsg = 'ng serve command failed';
127-
var child = child_process.exec('ng serve');
128-
ngServePid = child.pid;
129-
130-
child.stdout.on('data', (data) => {
131-
if (/^Build successful/.test(data)) {
132-
resolve(execPromise('ng e2e').catch(() => Promise.reject(e2eFailedMsg)));
123+
var serveProcess = child_process.exec(`${ngBin} serve`);
124+
var startedProtractor = false;
125+
ngServePid = serveProcess.pid;
126+
127+
serveProcess.stdout.on('data', (data) => {
128+
if (/Build successful/.test(data) && !startedProtractor) {
129+
startedProtractor = true;
130+
child_process.exec(`${ngBin} e2e`, (error, stdout, stderr) => {
131+
if (error !== null) {
132+
reject(stderr)
133+
} else {
134+
resolve();
135+
}
136+
});
133137
} else if (/ failed with:/.test(data)) {
134-
reject(serveFailedMsg);
138+
reject(data);
135139
}
136140
});
137141

138-
child.stderr.on('data', () => reject(serveFailedMsg));
139-
child.on('close', (code) => code === 0 ? resolve() : reject(serveFailedMsg));
142+
serveProcess.stderr.on('data', (data) => {
143+
reject(data);
144+
});
145+
serveProcess.on('close', (code) => {
146+
code === 0 ? resolve() : reject('ng serve command closed with error')
147+
});
140148
}
141149

142150
return new Promise(executor)
@@ -407,28 +415,38 @@ describe('Basic end-to-end Workflow', function () {
407415
expect('build failed where it should have succeeded').to.equal('');
408416
});
409417
});
410-
411-
it('Serve and run e2e tests after final build', function () {
412-
this.timeout(420000);
418+
419+
it('Serve and run e2e tests after all other commands', function () {
420+
this.timeout(240000);
413421

414422
var ngServePid;
415423

416424
function executor(resolve, reject) {
417-
var serveFailedMsg = 'ng serve command failed';
418-
var e2eFailedMsg = 'ng serve command failed';
419-
var child = child_process.exec(`${ngBin} serve`);
420-
ngServePid = child.pid;
421-
422-
child.stdout.on('data', (data) => {
423-
if (/^Build successful/.test(data)) {
424-
resolve(execPromise(`${ngBin} e2e`).catch(() => Promise.reject(e2eFailedMsg)));
425+
var serveProcess = child_process.exec(`${ngBin} serve`);
426+
var startedProtractor = false;
427+
ngServePid = serveProcess.pid;
428+
429+
serveProcess.stdout.on('data', (data) => {
430+
if (/Build successful/.test(data) && !startedProtractor) {
431+
startedProtractor = true;
432+
child_process.exec(`${ngBin} e2e`, (error, stdout, stderr) => {
433+
if (error !== null) {
434+
reject(stderr)
435+
} else {
436+
resolve();
437+
}
438+
});
425439
} else if (/ failed with:/.test(data)) {
426-
reject(serveFailedMsg);
440+
reject(data);
427441
}
428442
});
429443

430-
child.stderr.on('data', () => reject(serveFailedMsg));
431-
child.on('close', (code) => code === 0 ? resolve() : reject(serveFailedMsg));
444+
serveProcess.stderr.on('data', (data) => {
445+
reject(data);
446+
});
447+
serveProcess.on('close', (code) => {
448+
code === 0 ? resolve() : reject('ng serve command closed with error')
449+
});
432450
}
433451

434452
return new Promise(executor)

0 commit comments

Comments
 (0)