@@ -9,13 +9,13 @@ tmpdir.refresh();
99
1010const missingPackage = 'this-package-does-not-exist' ;
1111
12- async function assertDynamicImportNotFoundLocation ( entry , sourceLine , underline ) {
12+ async function assertDynamicImportNotFoundLocation ( entry , sourceLine , underline , line = 2 ) {
1313 const { code, signal, stdout, stderr } = await spawnPromisified ( execPath , [ entry ] ) ;
1414
1515 assert . strictEqual ( code , 1 ) ;
1616 assert . strictEqual ( signal , null ) ;
1717 assert . strictEqual ( stdout , '' ) ;
18- assert . ok ( stderr . includes ( `${ entry } :2 ` ) ) ;
18+ assert . ok ( stderr . includes ( `${ entry } :${ line } ` ) ) ;
1919 assert . match ( stderr , new RegExp ( sourceLine ) ) ;
2020 assert . match ( stderr , underline ) ;
2121 assert . match ( stderr , / E R R _ M O D U L E _ N O T _ F O U N D / ) ;
@@ -46,3 +46,29 @@ await assertDynamicImportNotFoundLocation(
4646 `import\\(${ JSON . stringify ( missingPackage ) } \\);` ,
4747 / { 8 } \^ { 27 } / ,
4848) ;
49+
50+ const variableEntry = tmpdir . resolve ( 'dynamic-variable-entry.mjs' ) ;
51+ await writeFile ( variableEntry , [
52+ 'Error.stackTraceLimit = 200;' ,
53+ `const pkg = ${ JSON . stringify ( missingPackage ) } ;` ,
54+ 'await import(pkg);' ,
55+ ] . join ( '\n' ) ) ;
56+
57+ await assertDynamicImportNotFoundLocation (
58+ variableEntry ,
59+ 'await import\\(pkg\\);' ,
60+ / { 13 } \^ { 27 } / ,
61+ 3 ,
62+ ) ;
63+
64+ const { code, signal, stdout, stderr } = await spawnPromisified ( execPath , [
65+ '--input-type=module' ,
66+ '--eval' ,
67+ `await import(${ JSON . stringify ( missingPackage ) } )` ,
68+ ] ) ;
69+
70+ assert . strictEqual ( code , 1 ) ;
71+ assert . strictEqual ( signal , null ) ;
72+ assert . strictEqual ( stdout , '' ) ;
73+ assert . match ( stderr , / E R R _ M O D U L E _ N O T _ F O U N D / ) ;
74+ assert . doesNotMatch ( stderr , / a w a i t i m p o r t / ) ;
0 commit comments