From bad16b3fbade6dd82ed6b82bd43b6eae4e4108e9 Mon Sep 17 00:00:00 2001 From: syi0808 Date: Mon, 15 Jul 2024 13:45:45 +0900 Subject: [PATCH] test_runner: get format from parentURL as default or pass specifier argument as fallback --- lib/test/mock_loader.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/test/mock_loader.js b/lib/test/mock_loader.js index 78cb0d31b78098..75756899ff6b28 100644 --- a/lib/test/mock_loader.js +++ b/lib/test/mock_loader.js @@ -23,8 +23,8 @@ let debug = require('internal/util/debuglog').debuglog('test_runner', (fn) => { debug = fn; }); const { createRequire, isBuiltin } = require('module'); -const { defaultResolve } = require('internal/modules/esm/resolve'); const { defaultGetFormatWithoutErrors } = require('internal/modules/esm/get_format'); +const { defaultResolve } = require('internal/modules/esm/resolve'); // TODO(cjihrig): This file should not be exposed publicly, but register() does // not handle internal loaders. Before marking this API as stable, one of the @@ -97,13 +97,13 @@ async function resolve(specifier, context, nextResolve) { if (isBuiltin(specifier)) { mockSpecifier = ensureNodeScheme(specifier); } else { - const format = defaultGetFormatWithoutErrors(pathToFileURL(specifier)); + const format = defaultGetFormatWithoutErrors( + pathToFileURL(context.parentURL ?? specifier) + ); try { - if(format === "module") { - specifier = pathToFileURL( - defaultResolve(specifier, context) - ).href; + if (format === 'module') { + specifier = defaultResolve(specifier, context).url; } else { const req = createRequire(context.parentURL); specifier = pathToFileURL(req.resolve(specifier)).href; @@ -240,4 +240,4 @@ function sendAck(buf, status = kMockSuccess) { AtomicsNotify(buf, 0); } -module.exports = { initialize, load, resolve }; +module.exports = { initialize, load, resolve }; \ No newline at end of file