@@ -23,8 +23,8 @@ let debug = require('internal/util/debuglog').debuglog('test_runner', (fn) => {
23
23
debug = fn ;
24
24
} ) ;
25
25
const { createRequire, isBuiltin } = require ( 'module' ) ;
26
- const { defaultResolve } = require ( 'internal/modules/esm/resolve' ) ;
27
26
const { defaultGetFormatWithoutErrors } = require ( 'internal/modules/esm/get_format' ) ;
27
+ const { defaultResolve } = require ( 'internal/modules/esm/resolve' ) ;
28
28
29
29
// TODO(cjihrig): This file should not be exposed publicly, but register() does
30
30
// not handle internal loaders. Before marking this API as stable, one of the
@@ -97,13 +97,13 @@ async function resolve(specifier, context, nextResolve) {
97
97
if ( isBuiltin ( specifier ) ) {
98
98
mockSpecifier = ensureNodeScheme ( specifier ) ;
99
99
} else {
100
- const format = defaultGetFormatWithoutErrors ( pathToFileURL ( specifier ) ) ;
100
+ const format = defaultGetFormatWithoutErrors (
101
+ pathToFileURL ( context . parentURL ?? specifier )
102
+ ) ;
101
103
102
104
try {
103
- if ( format === "module" ) {
104
- specifier = pathToFileURL (
105
- defaultResolve ( specifier , context )
106
- ) . href ;
105
+ if ( format === 'module' ) {
106
+ specifier = defaultResolve ( specifier , context ) . url ;
107
107
} else {
108
108
const req = createRequire ( context . parentURL ) ;
109
109
specifier = pathToFileURL ( req . resolve ( specifier ) ) . href ;
@@ -240,4 +240,4 @@ function sendAck(buf, status = kMockSuccess) {
240
240
AtomicsNotify ( buf , 0 ) ;
241
241
}
242
242
243
- module . exports = { initialize, load, resolve } ;
243
+ module . exports = { initialize, load, resolve } ;
0 commit comments