From d9c85e016f054fd3b6c68a54213e7c0ad8c3a8f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 2 Aug 2023 17:11:04 +0200 Subject: fix(node): node:test reports correct location (#20025) Also removed some noisy output that caused test flakiness. --- cli/js/40_testing.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'cli/js/40_testing.js') diff --git a/cli/js/40_testing.js b/cli/js/40_testing.js index 8b1557fbf..d119552e4 100644 --- a/cli/js/40_testing.js +++ b/cli/js/40_testing.js @@ -677,11 +677,21 @@ function test( // Delete this prop in case the user passed it. It's used to detect steps. delete testDesc.parent; const jsError = core.destructureError(new Error()); - testDesc.location = { - fileName: jsError.frames[1].fileName, - lineNumber: jsError.frames[1].lineNumber, - columnNumber: jsError.frames[1].columnNumber, - }; + let location; + + for (let i = 0; i < jsError.frames.length; i++) { + const filename = jsError.frames[i].fileName; + if (filename.startsWith("ext:") || filename.startsWith("node:")) { + continue; + } + location = { + fileName: jsError.frames[i].fileName, + lineNumber: jsError.frames[i].lineNumber, + columnNumber: jsError.frames[i].columnNumber, + }; + break; + } + testDesc.location = location; testDesc.fn = wrapTest(testDesc); const { id, origin } = ops.op_register_test(testDesc); -- cgit v1.2.3