File tree 2 files changed +28
-7
lines changed 2 files changed +28
-7
lines changed Original file line number Diff line number Diff line change @@ -197,11 +197,22 @@ Jasmine.prototype.stopOnSpecFailure = function(value) {
197
197
} ;
198
198
199
199
Jasmine . prototype . exitCodeCompletion = function ( passed ) {
200
- if ( passed ) {
201
- this . exit ( 0 ) ;
202
- }
203
- else {
204
- this . exit ( 1 ) ;
200
+ var jasmineRunner = this ;
201
+ var streams = [ process . stdout , process . stderr ] ;
202
+ var writesToWait = streams . length ;
203
+ streams . forEach ( function ( stream ) {
204
+ stream . write ( '' , exitIfAllStreamsCompleted ) ;
205
+ } ) ;
206
+ function exitIfAllStreamsCompleted ( ) {
207
+ writesToWait -- ;
208
+ if ( writesToWait === 0 ) {
209
+ if ( passed ) {
210
+ jasmineRunner . exit ( 0 ) ;
211
+ }
212
+ else {
213
+ jasmineRunner . exit ( 1 ) ;
214
+ }
215
+ }
205
216
}
206
217
} ;
207
218
Original file line number Diff line number Diff line change @@ -444,16 +444,26 @@ describe('Jasmine', function() {
444
444
this . testJasmine . exit = exitSpy ;
445
445
446
446
this . testJasmine . exitCodeCompletion ( true ) ;
447
- expect ( exitSpy ) . toHaveBeenCalledWith ( 0 ) ;
447
+ sleep ( 10 ) . then ( function ( ) {
448
+ expect ( exitSpy ) . toHaveBeenCalledWith ( 0 ) ;
449
+ } ) ;
448
450
} ) ;
449
451
450
452
it ( 'exits with a failure when anything in the suite is not green' , function ( ) {
451
453
var exitSpy = jasmine . createSpy ( 'exit' ) ;
452
454
this . testJasmine . exit = exitSpy ;
453
455
454
456
this . testJasmine . exitCodeCompletion ( false ) ;
455
- expect ( exitSpy ) . toHaveBeenCalledWith ( 1 ) ;
457
+ sleep ( 10 ) . then ( function ( ) {
458
+ expect ( exitSpy ) . toHaveBeenCalledWith ( 1 ) ;
459
+ } ) ;
456
460
} ) ;
461
+
462
+ function sleep ( ms ) {
463
+ return new Promise ( function ( resolve ) {
464
+ setTimeout ( resolve , ms ) ;
465
+ } ) ;
466
+ }
457
467
} ) ;
458
468
} ) ;
459
469
} ) ;
You can’t perform that action at this time.
0 commit comments