Skip to content

Commit ab93018

Browse files
committed
test: add tests for import.meta.require
1 parent a6d78ed commit ab93018

1 file changed

Lines changed: 33 additions & 6 deletions

File tree

test/es-module/test-esm-import-meta.mjs

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,47 @@
33
import '../common';
44
import assert from 'assert';
55

6+
const fixtures = import.meta.require('../common/fixtures');
7+
68
assert.strictEqual(Object.getPrototypeOf(import.meta), null);
79

8-
const keys = ['url'];
10+
const keys = ['url', 'require'];
911
assert.deepStrictEqual(Reflect.ownKeys(import.meta), keys);
1012

1113
const descriptors = Object.getOwnPropertyDescriptors(import.meta);
14+
1215
for (const descriptor of Object.values(descriptors)) {
1316
delete descriptor.value; // Values are verified below.
14-
assert.deepStrictEqual(descriptor, {
15-
enumerable: true,
16-
writable: true,
17-
configurable: true
18-
});
1917
}
2018

19+
assert.deepStrictEqual(descriptors.url, {
20+
enumerable: true,
21+
writable: true,
22+
configurable: true
23+
});
24+
25+
assert.deepStrictEqual(descriptors.require, {
26+
get: descriptors.require.get,
27+
set: undefined,
28+
enumerable: true,
29+
configurable: true
30+
});
31+
32+
assert.strictEqual(import.meta.require.cache, undefined);
33+
assert.strictEqual(import.meta.require.extensions, undefined);
34+
assert.strictEqual(import.meta.require.main, undefined);
35+
assert.strictEqual(import.meta.require.paths, undefined);
36+
2137
const urlReg = /^file:\/\/\/.*\/test\/es-module\/test-esm-import-meta\.mjs$/;
2238
assert(import.meta.url.match(urlReg));
39+
40+
const a = import.meta.require(
41+
fixtures.path('module-require', 'relative', 'dot.js')
42+
);
43+
const b = import.meta.require(
44+
fixtures.path('module-require', 'relative', 'dot-slash.js')
45+
);
46+
47+
assert.strictEqual(a.value, 42);
48+
// require(".") should resolve like require("./")
49+
assert.strictEqual(a, b);

0 commit comments

Comments
 (0)