@@ -9,8 +9,6 @@ var conf = require('ember-cli/tests/helpers/conf');
9
9
var sh = require ( 'shelljs' ) ;
10
10
var treeKill = require ( 'tree-kill' ) ;
11
11
var child_process = require ( 'child_process' ) ;
12
- var Promise = require ( 'ember-cli/lib/ext/promise' ) ;
13
- var execPromise = Promise . denodeify ( child_process . exec ) ;
14
12
var ng = require ( '../helpers/ng' ) ;
15
13
var root = path . join ( process . cwd ( ) , 'tmp' ) ;
16
14
@@ -127,26 +125,52 @@ describe('Basic end-to-end Workflow', function () {
127
125
function executor ( resolve , reject ) {
128
126
var serveFailedMsg = 'ng serve command failed' ;
129
127
var e2eFailedMsg = 'ng serve command failed' ;
130
- var child = child_process . exec ( 'ng serve' ) ;
128
+ var child = child_process . exec ( `${ ngBin } serve` ) ;
129
+ var startedProtractor = false ;
131
130
ngServePid = child . pid ;
132
131
133
132
child . stdout . on ( 'data' , ( data ) => {
134
- if ( / ^ B u i l d s u c c e s s f u l / . test ( data ) ) {
135
- resolve ( execPromise ( 'ng e2e' ) . catch ( ( ) => Promise . reject ( e2eFailedMsg ) ) ) ;
133
+ // console.log(`stdout: ##${data}##`);
134
+ if ( / ^ B u i l d s u c c e s s f u l / . test ( data ) && ! startedProtractor ) {
135
+ startedProtractor = true ;
136
+ child_process . exec ( `${ ngBin } e2e` , ( error , stdout , stderr ) => {
137
+ console . log ( `e2e stdout: ###${ stdout } ###` ) ;
138
+ console . log ( `e2e stderr: ###${ stderr } ###` ) ;
139
+ if ( error !== null ) {
140
+ console . log ( `e2e exec error: ###${ error } ###` ) ;
141
+ reject ( e2eFailedMsg )
142
+ } else {
143
+ resolve ( ) ;
144
+ }
145
+ } ) ;
146
+ // resolve(execPromise(`${ngBin} e2e`).then((succ) => {
147
+ // console.log(`e2e success: ##${succ}##`);
148
+ // }).catch((err) => {
149
+ // console.log(`e2e err: ##${err}##`);
150
+ // Promise.reject(e2eFailedMsg)
151
+ // }));
136
152
} else if ( / f a i l e d w i t h : / . test ( data ) ) {
137
153
reject ( serveFailedMsg ) ;
138
154
}
139
155
} ) ;
140
156
141
- child . stderr . on ( 'data' , ( ) => reject ( serveFailedMsg ) ) ;
142
- child . on ( 'close' , ( code ) => code === 0 ? resolve ( ) : reject ( serveFailedMsg ) ) ;
157
+ child . stderr . on ( 'data' , ( ) => {
158
+ // console.log(`stderr: ##${data}##`);
159
+ reject ( serveFailedMsg ) ;
160
+ } ) ;
161
+ child . on ( 'close' , ( code ) => {
162
+ // console.log(`close: ##${code}##`);
163
+ code === 0 ? resolve ( ) : reject ( serveFailedMsg )
164
+ } ) ;
143
165
}
144
166
145
167
return new Promise ( executor )
146
168
. then ( ( ) => {
169
+ console . log ( `###resolve###` ) ;
147
170
if ( ngServePid ) treeKill ( ngServePid ) ;
148
171
} )
149
172
. catch ( ( msg ) => {
173
+ console . log ( `###reject###` ) ;
150
174
if ( ngServePid ) treeKill ( ngServePid ) ;
151
175
throw new Error ( msg ) ;
152
176
} ) ;
@@ -411,36 +435,36 @@ describe('Basic end-to-end Workflow', function () {
411
435
} ) ;
412
436
} ) ;
413
437
414
- it ( 'Serve and run e2e tests after final build' , function ( ) {
415
- this . timeout ( 420000 ) ;
416
-
417
- var ngServePid ;
418
-
419
- function executor ( resolve , reject ) {
420
- var serveFailedMsg = 'ng serve command failed' ;
421
- var e2eFailedMsg = 'ng serve command failed' ;
422
- var child = child_process . exec ( `${ ngBin } serve` ) ;
423
- ngServePid = child . pid ;
424
-
425
- child . stdout . on ( 'data' , ( data ) => {
426
- if ( / ^ B u i l d s u c c e s s f u l / . test ( data ) ) {
427
- resolve ( execPromise ( `${ ngBin } e2e` ) . catch ( ( ) => Promise . reject ( e2eFailedMsg ) ) ) ;
428
- } else if ( / f a i l e d w i t h : / . test ( data ) ) {
429
- reject ( serveFailedMsg ) ;
430
- }
431
- } ) ;
432
-
433
- child . stderr . on ( 'data' , ( ) => reject ( serveFailedMsg ) ) ;
434
- child . on ( 'close' , ( code ) => code === 0 ? resolve ( ) : reject ( serveFailedMsg ) ) ;
435
- }
436
-
437
- return new Promise ( executor )
438
- . then ( ( ) => {
439
- if ( ngServePid ) treeKill ( ngServePid ) ;
440
- } )
441
- . catch ( ( msg ) => {
442
- if ( ngServePid ) treeKill ( ngServePid ) ;
443
- throw new Error ( msg ) ;
444
- } ) ;
445
- } ) ;
438
+ // it('Serve and run e2e tests after final build', function () {
439
+ // this.timeout(420000);
440
+
441
+ // var ngServePid;
442
+
443
+ // function executor(resolve, reject) {
444
+ // var serveFailedMsg = 'ng serve command failed';
445
+ // var e2eFailedMsg = 'ng serve command failed';
446
+ // var child = child_process.exec(`${ngBin} serve`);
447
+ // ngServePid = child.pid;
448
+
449
+ // child.stdout.on('data', (data) => {
450
+ // if (/^Build successful/.test(data)) {
451
+ // resolve(execPromise(`${ngBin} e2e`).catch(() => Promise.reject(e2eFailedMsg)));
452
+ // } else if (/ failed with:/.test(data)) {
453
+ // reject(serveFailedMsg);
454
+ // }
455
+ // });
456
+
457
+ // child.stderr.on('data', () => reject(serveFailedMsg));
458
+ // child.on('close', (code) => code === 0 ? resolve() : reject(serveFailedMsg));
459
+ // }
460
+
461
+ // return new Promise(executor)
462
+ // .then(() => {
463
+ // if (ngServePid) treeKill(ngServePid);
464
+ // })
465
+ // .catch((msg) => {
466
+ // if (ngServePid) treeKill(ngServePid);
467
+ // throw new Error(msg);
468
+ // });
469
+ // });
446
470
} ) ;
0 commit comments