forked from nodejs/node
/
test-esm-module-not-found-commonjs-hint.mjs
55 lines (52 loc) · 1.93 KB
/
test-esm-module-not-found-commonjs-hint.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import { spawnPromisified } from '../common/index.mjs';
import { fixturesDir, fileURL as fixtureSubDir } from '../common/fixtures.mjs';
import { match, notStrictEqual } from 'node:assert';
import { execPath } from 'node:process';
import { describe, it } from 'node:test';
describe('ESM: module not found hint', { concurrency: !process.env.TEST_PARALLEL }, () => {
for (
const { input, expected, cwd = fixturesDir }
of [
{
input: 'import "./print-error-message"',
// Did you mean to import "./print-error-message.js"?
expected: / "\.\/print-error-message\.js"\?/,
},
{
input: 'import "./es-modules/folder%25with percentage#/index.js"',
// Did you mean to import "./es-modules/folder%2525with%20percentage%23/index.js"?
expected: / "\.\/es-modules\/folder%2525with%20percentage%23\/index\.js"\?/,
},
{
input: 'import "../folder%25with percentage#/index.js"',
// Did you mean to import "../es-modules/folder%2525with%20percentage%23/index.js"?
expected: / "\.\.\/folder%2525with%20percentage%23\/index\.js"\?/,
cwd: fixtureSubDir('es-modules/tla/'),
},
{
input: 'import obj from "some_module/obj"',
expected: / "some_module\/obj\.js"\?/,
},
{
input: 'import obj from "some_module/folder%25with percentage#/index.js"',
expected: / "some_module\/folder%2525with%20percentage%23\/index\.js"\?/,
},
{
input: 'import "@nodejsscope/pkg/index"',
expected: / "@nodejsscope\/pkg\/index\.js"\?/,
},
{
input: 'import obj from "lone_file.js"',
expected: /node_modules\/lone_file\.js"\?/,
},
]
) it('should cite a variant form', async () => {
const { code, stderr } = await spawnPromisified(execPath, [
'--input-type=module',
'--eval',
input,
], { cwd });
match(stderr, expected);
notStrictEqual(code, 0);
});
});