| // Flags: --experimental-require-module |
| 'use strict'; |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| |
| // Test named exports. |
| { |
| const mod = require('../fixtures/es-module-loaders/module-named-exports.mjs'); |
| common.expectRequiredModule(mod, { foo: 'foo', bar: 'bar' }); |
| } |
| |
| // Test ESM that import ESM. |
| { |
| const mod = require('../fixtures/es-modules/import-esm.mjs'); |
| common.expectRequiredModule(mod, { hello: 'world' }); |
| } |
| |
| // Test ESM that import CJS. |
| { |
| const mod = require('../fixtures/es-modules/cjs-exports.mjs'); |
| common.expectRequiredModule(mod, { }); |
| } |
| |
| // Test ESM that require() CJS. |
| { |
| const mjs = require('../common/index.mjs'); |
| // Only comparing a few properties because the ESM version of test/common doesn't |
| // re-export everything from the CJS version. |
| assert.strictEqual(common.mustCall, mjs.mustCall); |
| assert.strictEqual(common.localIPv6Hosts, mjs.localIPv6Hosts); |
| } |
| |
| // Test "type": "module" and "main" field in package.json. |
| // Also, test default export. |
| { |
| const mod = require('../fixtures/es-modules/package-type-module'); |
| common.expectRequiredModule(mod, { default: 'package-type-module' }); |
| } |
| |
| // Test data: import. |
| { |
| const mod = require('../fixtures/es-modules/data-import.mjs'); |
| common.expectRequiredModule(mod, { |
| data: { hello: 'world' }, |
| id: 'data:text/javascript,export default %7B%20hello%3A%20%22world%22%20%7D' |
| }); |
| } |