blob: 5b5a4a4bbb47b073c255b90268b2da7538ec91da [file] [edit]
// Flags: --experimental-require-module
'use strict';
// Tests that require()ing modules without explicit module type information
// warns and errors.
require('../common');
const assert = require('assert');
const { isModuleNamespaceObject } = require('util/types');
assert.throws(() => {
require('../fixtures/es-modules/package-without-type/noext-esm');
}, {
message: /Unexpected token 'export'/
});
assert.throws(() => {
require('../fixtures/es-modules/loose.js');
}, {
message: /Unexpected token 'export'/
});
{
// .mjs should not be matched as default extensions.
const id = '../fixtures/es-modules/should-not-be-resolved';
assert.throws(() => {
require(id);
}, {
code: 'MODULE_NOT_FOUND'
});
const mod = require(`${id}.mjs`);
assert.deepStrictEqual({ ...mod }, { hello: 'world' });
assert(isModuleNamespaceObject(mod));
}