File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -197,6 +197,7 @@ var generateDiff = (exports.generateDiff = function(actual, expected) {
197197 * Error property
198198 */
199199exports . list = function ( failures ) {
200+ var multipleErr , multipleTest ;
200201 Base . consoleLog ( ) ;
201202 failures . forEach ( function ( test , i ) {
202203 // format
@@ -207,7 +208,16 @@ exports.list = function(failures) {
207208
208209 // msg
209210 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+ }
211221 var message ;
212222 if ( err . message && typeof err . message . toString === 'function' ) {
213223 message = err . message + '' ;
@@ -298,7 +308,12 @@ function Base(runner, options) {
298308 if ( showDiff ( err ) ) {
299309 stringifyDiffObjs ( err ) ;
300310 }
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+ }
302317 failures . push ( test ) ;
303318 } ) ;
304319}
Original file line number Diff line number Diff line change @@ -417,6 +417,22 @@ describe('Base reporter', function() {
417417 expect ( errOut , 'to be' , '1) test title:\n Error\n foo\n bar' ) ;
418418 } ) ;
419419
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+
420436 describe ( 'when reporter output immune to user test changes' , function ( ) {
421437 var sandbox ;
422438 var baseConsoleLog ;
You can’t perform that action at this time.
0 commit comments