mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
3c4ef343ee
The synchronous CJS translator can handle entrypoints now, this can be hit when --import is used, so lift the bogus assertions and added tests. PR-URL: https://github.com/nodejs/node/pull/54592 Fixes: https://github.com/nodejs/node/issues/54577 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
120 lines
2.3 KiB
JavaScript
120 lines
2.3 KiB
JavaScript
'use strict';
|
|
|
|
require('../common');
|
|
const { spawnSyncAndAssert } = require('../common/child_process');
|
|
const { fixturesDir } = require('../common/fixtures');
|
|
const stderr = /ExperimentalWarning: Support for loading ES Module in require/;
|
|
|
|
function testPreload(preloadFlag) {
|
|
// Test named exports.
|
|
{
|
|
spawnSyncAndAssert(
|
|
process.execPath,
|
|
[
|
|
'--experimental-require-module',
|
|
preloadFlag,
|
|
'./es-module-loaders/module-named-exports.mjs',
|
|
'./printA.js',
|
|
],
|
|
{
|
|
cwd: fixturesDir
|
|
},
|
|
{
|
|
stdout: 'A',
|
|
stderr,
|
|
trim: true,
|
|
}
|
|
);
|
|
}
|
|
|
|
// Test ESM that import ESM.
|
|
{
|
|
spawnSyncAndAssert(
|
|
process.execPath,
|
|
[
|
|
'--experimental-require-module',
|
|
preloadFlag,
|
|
'./es-modules/import-esm.mjs',
|
|
'./printA.js',
|
|
],
|
|
{
|
|
cwd: fixturesDir
|
|
},
|
|
{
|
|
stderr,
|
|
stdout: /^world\s+A$/,
|
|
trim: true,
|
|
}
|
|
);
|
|
}
|
|
|
|
// Test ESM that import CJS.
|
|
{
|
|
spawnSyncAndAssert(
|
|
process.execPath,
|
|
[
|
|
'--experimental-require-module',
|
|
preloadFlag,
|
|
'./es-modules/cjs-exports.mjs',
|
|
'./printA.js',
|
|
],
|
|
{
|
|
cwd: fixturesDir
|
|
},
|
|
{
|
|
stdout: /^ok\s+A$/,
|
|
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.
|
|
{
|
|
spawnSyncAndAssert(
|
|
process.execPath,
|
|
[
|
|
'--experimental-require-module',
|
|
preloadFlag,
|
|
'./es-modules/require-cjs.mjs',
|
|
'./printA.js',
|
|
],
|
|
{
|
|
cwd: fixturesDir
|
|
},
|
|
{
|
|
stdout: /^world\s+A$/,
|
|
stderr,
|
|
trim: true,
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
testPreload('--require');
|
|
testPreload('--import');
|
|
|
|
// Test "type": "module" and "main" field in package.json, this is only for --require because
|
|
// --import does not support extension-less preloads.
|
|
{
|
|
spawnSyncAndAssert(
|
|
process.execPath,
|
|
[
|
|
'--experimental-require-module',
|
|
'--require',
|
|
'./es-modules/package-type-module',
|
|
'./printA.js',
|
|
],
|
|
{
|
|
cwd: fixturesDir
|
|
},
|
|
{
|
|
stdout: /^package-type-module\s+A$/,
|
|
stderr,
|
|
trim: true,
|
|
}
|
|
);
|
|
}
|