| 115 | return function (done) { |
| 116 | const doneFn = makeDoneCallableOnce(done) |
| 117 | const errHandler = err => { |
| 118 | recorder.session.start('teardown') |
| 119 | recorder.cleanAsyncErr() |
| 120 | if (['before', 'beforeSuite'].includes(hookName)) { |
| 121 | suiteTestFailedHookError(suite, err, hookName) |
| 122 | } |
| 123 | if (hookName === 'after') { |
| 124 | suiteTestFailedHookError(suite, err, hookName) |
| 125 | suite.eachTest(test => { |
| 126 | event.emit(event.test.after, test) |
| 127 | }) |
| 128 | } |
| 129 | if (hookName === 'afterSuite') { |
| 130 | suiteTestFailedHookError(suite, err, hookName) |
| 131 | event.emit(event.suite.after, suite) |
| 132 | } |
| 133 | recorder.add(() => doneFn(err)) |
| 134 | } |
| 135 | |
| 136 | recorder.errHandler(err => { |
| 137 | errHandler(err) |
no test coverage detected