test: add eval ESM module tests

PR-URL: https://github.com/nodejs/node/pull/27956
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
Evgenii Shchepotev 2019-05-29 19:45:26 +03:00 committed by Ruben Bridgewater
parent 574985cec8
commit 44f18d236b
No known key found for this signature in database
GPG Key ID: F07496B3EB3C1762

View File

@ -229,3 +229,48 @@ child.exec(`${nodejs} --use-strict -p process.execArgv`,
assert.strictEqual(err, null);
}));
});
// ESModule eval tests
// Assert that "42\n" is written to stdout on module eval.
const execOptions = '--experimental-modules --input-type module';
child.exec(
`${nodejs} ${execOptions} --eval "console.log(42)"`,
common.mustCall((err, stdout) => {
assert.ifError(err);
assert.strictEqual(stdout, '42\n');
}));
// Assert that "42\n" is written to stdout with print option.
child.exec(
`${nodejs} ${execOptions} --print --eval "42"`,
common.mustCall((err, stdout) => {
assert.ifError(err);
assert.strictEqual(stdout, '42\n');
}));
// Assert that error is written to stderr on invalid input.
child.exec(
`${nodejs} ${execOptions} --eval "!!!!"`,
common.mustCall((err, stdout, stderr) => {
assert.ok(err);
assert.strictEqual(stdout, '');
assert.ok(stderr.indexOf('SyntaxError: Unexpected end of input') > 0);
}));
// Assert that require is undefined in ESM support
child.exec(
`${nodejs} ${execOptions} --eval "console.log(typeof require);"`,
common.mustCall((err, stdout) => {
assert.ifError(err);
assert.strictEqual(stdout, 'undefined\n');
}));
// Assert that import.meta is defined in ESM
child.exec(
`${nodejs} ${execOptions} --eval "console.log(typeof import.meta);"`,
common.mustCall((err, stdout) => {
assert.ifError(err);
assert.strictEqual(stdout, 'object\n');
}));