File tree 2 files changed +33
-2
lines changed
2 files changed +33
-2
lines changed Original file line number Diff line number Diff line change @@ -197,6 +197,7 @@ var generateDiff = (exports.generateDiff = function(actual, expected) {
197
197
* Error property
198
198
*/
199
199
exports . list = function ( failures ) {
200
+ var multipleErr , multipleTest ;
200
201
Base . consoleLog ( ) ;
201
202
failures . forEach ( function ( test , i ) {
202
203
// format
@@ -207,7 +208,16 @@ exports.list = function(failures) {
207
208
208
209
// msg
209
210
var msg ;
210
- var err = test . err ;
211
+ var err ;
212
+ if ( test . err && test . err . multiple ) {
213
+ if ( multipleTest !== test ) {
214
+ multipleTest = test ;
215
+ multipleErr = [ test . err ] . concat ( test . err . multiple ) ;
216
+ }
217
+ err = multipleErr . shift ( ) ;
218
+ } else {
219
+ err = test . err ;
220
+ }
211
221
var message ;
212
222
if ( err . message && typeof err . message . toString === 'function' ) {
213
223
message = err . message + '' ;
@@ -298,7 +308,12 @@ function Base(runner, options) {
298
308
if ( showDiff ( err ) ) {
299
309
stringifyDiffObjs ( err ) ;
300
310
}
301
- test . err = err ;
311
+ // more than one error per test
312
+ if ( test . err && err instanceof Error ) {
313
+ test . err . multiple = ( test . err . multiple || [ ] ) . concat ( err ) ;
314
+ } else {
315
+ test . err = err ;
316
+ }
302
317
failures . push ( test ) ;
303
318
} ) ;
304
319
}
Original file line number Diff line number Diff line change @@ -417,6 +417,22 @@ describe('Base reporter', function() {
417
417
expect ( errOut , 'to be' , '1) test title:\n Error\n foo\n bar' ) ;
418
418
} ) ;
419
419
420
+ it ( 'should list multiple Errors per test' , function ( ) {
421
+ var err = new Error ( 'First Error' ) ;
422
+ err . multiple = [ new Error ( 'Second Error - same test' ) ] ;
423
+ var test = makeTest ( err ) ;
424
+
425
+ list ( [ test , test ] ) ;
426
+
427
+ var errOut = stdout . join ( '\n' ) . trim ( ) ;
428
+ expect (
429
+ errOut ,
430
+ 'to contain' ,
431
+ 'Error: First Error' ,
432
+ 'Error: Second Error - same test'
433
+ ) ;
434
+ } ) ;
435
+
420
436
describe ( 'when reporter output immune to user test changes' , function ( ) {
421
437
var sandbox ;
422
438
var baseConsoleLog ;
You can’t perform that action at this time.
0 commit comments