summaryrefslogtreecommitdiff
path: root/test/es-module/test-esm-specifiers.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'test/es-module/test-esm-specifiers.mjs')
-rw-r--r--test/es-module/test-esm-specifiers.mjs35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/es-module/test-esm-specifiers.mjs b/test/es-module/test-esm-specifiers.mjs
new file mode 100644
index 0000000000..0c5e1ac04a
--- /dev/null
+++ b/test/es-module/test-esm-specifiers.mjs
@@ -0,0 +1,35 @@
+// Flags: --experimental-modules --es-module-specifier-resolution=node
+import { mustNotCall } from '../common';
+import assert from 'assert';
+
+// commonJS index.js
+import commonjs from '../fixtures/es-module-specifiers/package-type-commonjs';
+// esm index.js
+import module from '../fixtures/es-module-specifiers/package-type-module';
+// Notice the trailing slash
+import success, { explicit, implicit, implicitModule, getImplicitCommonjs }
+ from '../fixtures/es-module-specifiers/';
+
+assert.strictEqual(commonjs, 'commonjs');
+assert.strictEqual(module, 'module');
+assert.strictEqual(success, 'success');
+assert.strictEqual(explicit, 'esm');
+assert.strictEqual(implicit, 'esm');
+assert.strictEqual(implicitModule, 'esm');
+
+async function main() {
+ try {
+ await import('../fixtures/es-module-specifiers/do-not-exist.js');
+ } catch (e) {
+ // Files that do not exist should throw
+ assert.strictEqual(e.name, 'Error');
+ }
+ try {
+ await getImplicitCommonjs();
+ } catch (e) {
+ // Legacy loader cannot resolve .mjs automatically from main
+ assert.strictEqual(e.name, 'Error');
+ }
+}
+
+main().catch(mustNotCall);