blob: cd51e201b63df8217e516067a85d3982e6203e91 [file] [edit]
'use strict';
require('../common');
const { spawnSyncAndExitWithoutError } = require('../common/child_process');
const fixtures = require('../common/fixtures');
const stderr = /ExperimentalWarning: Support for loading ES Module in require/;
// Test named exports.
{
spawnSyncAndExitWithoutError(
process.execPath,
[ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-module-loaders/module-named-exports.mjs') ],
{
stderr,
}
);
}
// Test ESM that import ESM.
{
spawnSyncAndExitWithoutError(
process.execPath,
[ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-modules/import-esm.mjs') ],
{
stderr,
stdout: 'world',
trim: true,
}
);
}
// Test ESM that import CJS.
{
spawnSyncAndExitWithoutError(
process.execPath,
[ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-modules/cjs-exports.mjs') ],
{
stdout: 'ok',
stderr,
trim: true,
}
);
}
// Test ESM that require() CJS.
// Can't use the common/index.mjs here because that checks the globals, and
// -r injects a bunch of globals.
{
spawnSyncAndExitWithoutError(
process.execPath,
[ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-modules/require-cjs.mjs') ],
{
stdout: 'world',
stderr,
trim: true,
}
);
}
// Test "type": "module" and "main" field in package.json.
{
spawnSyncAndExitWithoutError(
process.execPath,
[ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-modules/package-type-module') ],
{
stdout: 'package-type-module',
stderr,
trim: true,
}
);
}