File tree 8 files changed +81
-2
lines changed
8 files changed +81
-2
lines changed Original file line number Diff line number Diff line change @@ -9,5 +9,6 @@ module.exports = {
9
9
pass : chalk . green ,
10
10
duration : chalk . gray . dim ,
11
11
errorStack : chalk . gray ,
12
- stack : chalk . red
12
+ stack : chalk . red ,
13
+ failFast : chalk . magenta
13
14
} ;
Original file line number Diff line number Diff line change @@ -220,6 +220,10 @@ MiniReporter.prototype.finish = function (runStatus) {
220
220
} ) ;
221
221
}
222
222
223
+ if ( runStatus . failFastEnabled === true ) {
224
+ status += '\n\n ' + colors . failFast ( '`--fail-fast` is on. Any number of tests may have been skipped' ) ;
225
+ }
226
+
223
227
return status + '\n\n' ;
224
228
} ;
225
229
Original file line number Diff line number Diff line change @@ -114,6 +114,10 @@ VerboseReporter.prototype.finish = function (runStatus) {
114
114
} ) ;
115
115
}
116
116
117
+ if ( runStatus . failFastEnabled === true ) {
118
+ output += '\n\n\n ' + colors . failFast ( '`--fail-fast` is on. Any number of tests may have been skipped' ) ;
119
+ }
120
+
117
121
return output + '\n' ;
118
122
} ;
119
123
Original file line number Diff line number Diff line change @@ -28,6 +28,12 @@ function normalizeError(err) {
28
28
return err ;
29
29
}
30
30
31
+ function isFailFastEnabled ( stat ) {
32
+ if ( stat . failFastEnabled === true ) {
33
+ return stat ;
34
+ }
35
+ }
36
+
31
37
class RunStatus extends EventEmitter {
32
38
constructor ( opts ) {
33
39
super ( ) ;
@@ -50,6 +56,7 @@ class RunStatus extends EventEmitter {
50
56
this . errors = [ ] ;
51
57
this . stats = [ ] ;
52
58
this . tests = [ ] ;
59
+ this . failFastEnabled = false ;
53
60
54
61
autoBind ( this ) ;
55
62
}
@@ -138,6 +145,10 @@ class RunStatus extends EventEmitter {
138
145
this . skipCount = sum ( this . stats , 'skipCount' ) ;
139
146
this . todoCount = sum ( this . stats , 'todoCount' ) ;
140
147
this . failCount = sum ( this . stats , 'failCount' ) ;
148
+ var failFastIsEnabled = this . stats . find ( isFailFastEnabled ) ;
149
+ if ( failFastIsEnabled !== undefined && failFastIsEnabled . failFastEnabled === true ) {
150
+ this . failFastEnabled = true ;
151
+ }
141
152
}
142
153
}
143
154
Original file line number Diff line number Diff line change @@ -107,9 +107,14 @@ class Runner extends EventEmitter {
107
107
const stats = {
108
108
testCount : 0 ,
109
109
skipCount : 0 ,
110
- todoCount : 0
110
+ todoCount : 0 ,
111
+ failFastEnabled : false
111
112
} ;
112
113
114
+ if ( this . _bail === true ) {
115
+ stats . failFastEnabled = true ;
116
+ }
117
+
113
118
this . results
114
119
. map ( result => {
115
120
return result . result ;
Original file line number Diff line number Diff line change @@ -383,6 +383,21 @@ test('results with errors', function (t) {
383
383
t . end ( ) ;
384
384
} ) ;
385
385
386
+ test ( 'results when fail-fast is enabled' , function ( t ) {
387
+ var reporter = miniReporter ( ) ;
388
+ var runStatus = {
389
+ failFastEnabled : true
390
+ } ;
391
+
392
+ var output = reporter . finish ( runStatus ) ;
393
+ compareLineOutput ( t , output , [
394
+ '' ,
395
+ '' ,
396
+ ' ' + colors . failFast ( '`--fail-fast` is on. Any number of tests may have been skipped' )
397
+ ] ) ;
398
+ t . end ( ) ;
399
+ } ) ;
400
+
386
401
test ( 'results with 1 previous failure' , function ( t ) {
387
402
var reporter = miniReporter ( ) ;
388
403
reporter . todoCount = 1 ;
Original file line number Diff line number Diff line change @@ -381,6 +381,29 @@ test('results with errors', function (t) {
381
381
t . end ( ) ;
382
382
} ) ;
383
383
384
+ test ( 'results when fail-fast is enabled' , function ( t ) {
385
+ var reporter = verboseReporter ( ) ;
386
+ var runStatus = createRunStatus ( ) ;
387
+ runStatus . failCount = 1 ;
388
+ runStatus . failFastEnabled = true ;
389
+ runStatus . tests = [ {
390
+ title : 'failed test'
391
+ } ] ;
392
+
393
+ var output = reporter . finish ( runStatus ) ;
394
+ var expectedOutput = [
395
+ '' ,
396
+ ' ' + chalk . red ( '1 test failed' ) + time ,
397
+ '' ,
398
+ '' ,
399
+ ' ' + colors . failFast ( '`--fail-fast` is on. Any number of tests may have been skipped' ) ,
400
+ ''
401
+ ] . join ( '\n' ) ;
402
+
403
+ t . is ( output , expectedOutput ) ;
404
+ t . end ( ) ;
405
+ } ) ;
406
+
384
407
test ( 'results with 1 previous failure' , function ( t ) {
385
408
var reporter = createReporter ( ) ;
386
409
Original file line number Diff line number Diff line change @@ -659,3 +659,19 @@ test('match applies to arrays of macros', t => {
659
659
t . end ( ) ;
660
660
} ) ;
661
661
} ) ;
662
+
663
+ test ( 'stats.failFastEnabled is false when bail is not set' , t => {
664
+ const runner = new Runner ( ) ;
665
+ var stats = runner . _buildStats ( ) ;
666
+
667
+ t . is ( stats . failFastEnabled , false ) ;
668
+ t . end ( ) ;
669
+ } ) ;
670
+
671
+ test ( 'stats.failFastEnabled is true when bail is set' , t => {
672
+ const runner = new Runner ( { bail : true } ) ;
673
+ var stats = runner . _buildStats ( ) ;
674
+
675
+ t . is ( stats . failFastEnabled , true ) ;
676
+ t . end ( ) ;
677
+ } ) ;
You can’t perform that action at this time.
0 commit comments