mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
Signed-off-by: Aviv Keller <me@aviv.sh> PR-URL: https://github.com/nodejs/node/pull/64034 Fixes: https://github.com/nodejs/node/issues/64523 Closes: https://github.com/nodejs/node/pull/64534 Fixes: https://github.com/nodejs/node/issues/39387 Closes: https://github.com/nodejs/node/pull/39392 Fixes: https://github.com/nodejs/node/issues/61390 Fixes: https://github.com/nodejs/node/issues/63126 Fixes: https://github.com/nodejs/node/issues/38503 Fixes: https://github.com/nodejs/node/issues/37445 Fixes: https://github.com/nodejs/node/issues/38145 Fixes: https://github.com/nodejs/node/issues/33369 Fixes: https://github.com/nodejs/node/issues/48131 Fixes: https://github.com/nodejs/node/issues/8309 Fixes: https://github.com/nodejs/node/issues/39689 Fixes: https://github.com/nodejs/node/issues/18931 Reviewed-By: Dario Piotrowicz <dario.piotrowicz@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
import * as common from '../common/index.mjs';
|
|
import assert from 'node:assert';
|
|
import repl from 'node:repl';
|
|
import { startNewREPLServer } from '../common/repl.js';
|
|
|
|
if (process.env.TERM === 'dumb') {
|
|
common.skip('skipping - dumb terminal');
|
|
}
|
|
|
|
const tests = [testSloppyMode, testStrictMode, testStrictModeTerminal];
|
|
|
|
async function testSloppyMode() {
|
|
const { run, output } = startNewREPLServer({
|
|
replMode: repl.REPL_MODE_SLOPPY,
|
|
terminal: false,
|
|
prompt: '> ',
|
|
});
|
|
|
|
await run('x = 3\n');
|
|
assert.strictEqual(output.accumulator, '> 3\n> ');
|
|
output.accumulator = '';
|
|
|
|
await run('let y = 3\n');
|
|
assert.strictEqual(output.accumulator, 'undefined\n> ');
|
|
}
|
|
|
|
async function testStrictMode() {
|
|
const { run, output } = startNewREPLServer({
|
|
replMode: repl.REPL_MODE_STRICT,
|
|
terminal: false,
|
|
prompt: '> ',
|
|
});
|
|
|
|
await run('x = 3\n');
|
|
assert.match(output.accumulator, /ReferenceError: x is not defined/);
|
|
output.accumulator = '';
|
|
|
|
await run('let y = 3\n');
|
|
assert.strictEqual(output.accumulator, 'undefined\n> ');
|
|
}
|
|
|
|
async function testStrictModeTerminal() {
|
|
// Verify that ReferenceErrors are reported in strict mode previews.
|
|
const { run, output } = startNewREPLServer({
|
|
replMode: repl.REPL_MODE_STRICT,
|
|
prompt: '> ',
|
|
});
|
|
|
|
await run('xyz ');
|
|
assert.ok(
|
|
output.accumulator.includes('\n// ReferenceError: xyz is not defined'),
|
|
);
|
|
}
|
|
|
|
for (const test of tests) {
|
|
await test();
|
|
}
|