From 78d6743f58959d175b94a341cbbe4b4906bb6536 Mon Sep 17 00:00:00 2001 From: Derrick Farris Date: Wed, 11 Jan 2023 20:54:40 -0600 Subject: fix(node-test-helpers): make sure to call done with any Errors thrown from wrapped fn --- test/bun.js/node-test-helpers.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/test/bun.js/node-test-helpers.ts b/test/bun.js/node-test-helpers.ts index ff7b8ece3..25051e3a0 100644 --- a/test/bun.js/node-test-helpers.ts +++ b/test/bun.js/node-test-helpers.ts @@ -128,13 +128,22 @@ export const createCallCheckCtx = (done: DoneCb) => { // mustCallChecks.push(context); const done = createDone(); const _return = (...args) => { - // @ts-ignore - const result = fn.apply(this, args); - actual++; - if (actual >= expected) { - done(); + try { + // @ts-ignore + const result = fn.apply(this, args); + actual++; + if (actual >= expected) { + done(); + } + return result; + } catch (err) { + if (err instanceof Error) done(err); + else if (err?.toString) done(new Error(err?.toString())); + else { + console.error("Unknown error", err); + done(new Error("Unknown error")); + } } - return result; }; // Function instances have own properties that may be relevant. // Let's replicate those properties to the returned function. -- cgit v1.2.3