From 8f1ef164b1c5ea86b7f88bf0e219f9c9ec4339c2 Mon Sep 17 00:00:00 2001 From: kobenguyent <7845001+kobenguyent@users.noreply.github.com> Date: Tue, 5 Aug 2025 15:34:32 +0000 Subject: [PATCH 1/6] fix: hook exit code --- lib/mocha/asyncWrapper.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/mocha/asyncWrapper.js b/lib/mocha/asyncWrapper.js index 354cb35ed..f7a584c2a 100644 --- a/lib/mocha/asyncWrapper.js +++ b/lib/mocha/asyncWrapper.js @@ -121,9 +121,12 @@ module.exports.injected = function (fn, suite, hookName) { const errHandler = err => { recorder.session.start('teardown') recorder.cleanAsyncErr() - if (hookName == 'before' || hookName == 'beforeSuite') suiteTestFailedHookError(suite, err, hookName) - if (hookName === 'after') suite.eachTest(test => event.emit(event.test.after, test)) - if (hookName === 'afterSuite') event.emit(event.suite.after, suite) + if (hookName === 'before' || hookName === 'beforeSuite') { + suiteTestFailedHookError(suite, err, hookName) + } + if (hookName === 'after' || hookName === 'afterSuite') { + suiteTestFailedHookError(suite, err, hookName) + } recorder.add(() => doneFn(err)) } From b861449609e0b4a59ea86d8810f49a0d8517b9ee Mon Sep 17 00:00:00 2001 From: kobenguyent <7845001+kobenguyent@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:04:21 +0200 Subject: [PATCH 2/6] Update asyncWrapper.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lib/mocha/asyncWrapper.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/mocha/asyncWrapper.js b/lib/mocha/asyncWrapper.js index f7a584c2a..a98135a64 100644 --- a/lib/mocha/asyncWrapper.js +++ b/lib/mocha/asyncWrapper.js @@ -124,8 +124,17 @@ module.exports.injected = function (fn, suite, hookName) { if (hookName === 'before' || hookName === 'beforeSuite') { suiteTestFailedHookError(suite, err, hookName) } - if (hookName === 'after' || hookName === 'afterSuite') { + if (hookName === 'after') { suiteTestFailedHookError(suite, err, hookName) + // Emit event.test.after for each test in the suite + suite.eachTest(test => { + event.emit(event.test.after, test, err, hookName) + }) + } + if (hookName === 'afterSuite') { + suiteTestFailedHookError(suite, err, hookName) + // Emit event.suite.after for the suite + event.emit(event.suite.after, suite, err, hookName) } recorder.add(() => doneFn(err)) } From 30d47c9e822cc1af0313269741070be14c39b0e0 Mon Sep 17 00:00:00 2001 From: kobenguyent <7845001+kobenguyent@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:08:33 +0200 Subject: [PATCH 3/6] Update asyncWrapper.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lib/mocha/asyncWrapper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mocha/asyncWrapper.js b/lib/mocha/asyncWrapper.js index a98135a64..fa5a4cf86 100644 --- a/lib/mocha/asyncWrapper.js +++ b/lib/mocha/asyncWrapper.js @@ -134,7 +134,7 @@ module.exports.injected = function (fn, suite, hookName) { if (hookName === 'afterSuite') { suiteTestFailedHookError(suite, err, hookName) // Emit event.suite.after for the suite - event.emit(event.suite.after, suite, err, hookName) + event.emit(event.suite.after, suite) } recorder.add(() => doneFn(err)) } From c6a7233508f30ab42dc351f61194616111d44ebc Mon Sep 17 00:00:00 2001 From: kobenguyent <7845001+kobenguyent@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:08:42 +0200 Subject: [PATCH 4/6] Update asyncWrapper.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lib/mocha/asyncWrapper.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/mocha/asyncWrapper.js b/lib/mocha/asyncWrapper.js index fa5a4cf86..4a6b1009f 100644 --- a/lib/mocha/asyncWrapper.js +++ b/lib/mocha/asyncWrapper.js @@ -128,7 +128,10 @@ module.exports.injected = function (fn, suite, hookName) { suiteTestFailedHookError(suite, err, hookName) // Emit event.test.after for each test in the suite suite.eachTest(test => { - event.emit(event.test.after, test, err, hookName) + // Attach err and hookName to test for backward compatibility, if needed + test.err = err; + test.hookName = hookName; + event.emit(event.test.after, test) }) } if (hookName === 'afterSuite') { From d3cd57d08c227654495b9c8c30a02cd9bcc48c90 Mon Sep 17 00:00:00 2001 From: kobenguyent <7845001+kobenguyent@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:11:38 +0200 Subject: [PATCH 5/6] Update asyncWrapper.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lib/mocha/asyncWrapper.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/mocha/asyncWrapper.js b/lib/mocha/asyncWrapper.js index 4a6b1009f..2526f508f 100644 --- a/lib/mocha/asyncWrapper.js +++ b/lib/mocha/asyncWrapper.js @@ -128,8 +128,7 @@ module.exports.injected = function (fn, suite, hookName) { suiteTestFailedHookError(suite, err, hookName) // Emit event.test.after for each test in the suite suite.eachTest(test => { - // Attach err and hookName to test for backward compatibility, if needed - test.err = err; + // Attach hookName to test for backward compatibility, if needed test.hookName = hookName; event.emit(event.test.after, test) }) From 0ffbfdd2ae67b6f27666c315c2a2a15f3f71d859 Mon Sep 17 00:00:00 2001 From: kobenguyent <7845001+kobenguyent@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:17:31 +0200 Subject: [PATCH 6/6] Update asyncWrapper.js --- lib/mocha/asyncWrapper.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/mocha/asyncWrapper.js b/lib/mocha/asyncWrapper.js index 2526f508f..a3aba83cb 100644 --- a/lib/mocha/asyncWrapper.js +++ b/lib/mocha/asyncWrapper.js @@ -126,16 +126,12 @@ module.exports.injected = function (fn, suite, hookName) { } if (hookName === 'after') { suiteTestFailedHookError(suite, err, hookName) - // Emit event.test.after for each test in the suite suite.eachTest(test => { - // Attach hookName to test for backward compatibility, if needed - test.hookName = hookName; event.emit(event.test.after, test) }) } if (hookName === 'afterSuite') { suiteTestFailedHookError(suite, err, hookName) - // Emit event.suite.after for the suite event.emit(event.suite.after, suite) } recorder.add(() => doneFn(err))