@@ -13,12 +13,19 @@ const injectHook = function (inject, suite) {
1313 recorder . throw ( err )
1414 }
1515 recorder . catch ( err => {
16- event . emit ( event . test . failed , suite , err )
16+ suiteTestFailedHookError ( suite , err )
1717 throw err
1818 } )
1919 return recorder . promise ( )
2020}
2121
22+ function suiteTestFailedHookError ( suite , err ) {
23+ suite . eachTest ( test => {
24+ test . err = err
25+ event . emit ( event . test . failed , test , err )
26+ } )
27+ }
28+
2229function makeDoneCallableOnce ( done ) {
2330 let called = false
2431 return function ( err ) {
@@ -61,6 +68,7 @@ module.exports.test = test => {
6168 err = newErr
6269 }
6370 }
71+ test . err = err
6472 event . emit ( event . test . failed , test , err )
6573 event . emit ( event . test . finished , test )
6674 recorder . add ( ( ) => doneFn ( err ) )
@@ -112,7 +120,7 @@ module.exports.injected = function (fn, suite, hookName) {
112120 const errHandler = err => {
113121 recorder . session . start ( 'teardown' )
114122 recorder . cleanAsyncErr ( )
115- if ( hookName == 'before' || hookName == 'beforeSuite' ) suite . eachTest ( test => event . emit ( event . test . failed , test , err ) )
123+ if ( hookName == 'before' || hookName == 'beforeSuite' ) suiteTestFailedHookError ( suite , err )
116124 if ( hookName === 'after' ) event . emit ( event . test . after , suite )
117125 if ( hookName === 'afterSuite' ) event . emit ( event . suite . after , suite )
118126 recorder . add ( ( ) => doneFn ( err ) )
@@ -156,6 +164,7 @@ module.exports.injected = function (fn, suite, hookName) {
156164 )
157165 . then ( ( ) => {
158166 recorder . add ( 'fire hook.passed' , ( ) => fireHook ( event . hook . passed , suite ) )
167+ recorder . add ( 'fire hook.finished' , ( ) => fireHook ( event . hook . finished , suite ) )
159168 recorder . add ( `finish ${ hookName } hook` , doneFn )
160169 recorder . catch ( )
161170 } )
@@ -166,6 +175,7 @@ module.exports.injected = function (fn, suite, hookName) {
166175 errHandler ( err )
167176 } )
168177 recorder . add ( 'fire hook.failed' , ( ) => fireHook ( event . hook . failed , suite , e ) )
178+ recorder . add ( 'fire hook.finished' , ( ) => fireHook ( event . hook . finished , suite ) )
169179 } )
170180 }
171181}
0 commit comments