mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
Currently an error is printed identical, no matter if it is just inspected or if the error is thrown inside of the REPL. This makes sure we are able to distinguish these cases. PR-URL: https://github.com/nodejs/node/pull/25253 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Anna Henningsen <anna@addaleax.net>
59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
'use strict';
|
|
require('../common');
|
|
const ArrayStream = require('../common/arraystream');
|
|
const fixtures = require('../common/fixtures');
|
|
const assert = require('assert');
|
|
const repl = require('repl');
|
|
|
|
|
|
function run({ command, expected }) {
|
|
let accum = '';
|
|
|
|
const inputStream = new ArrayStream();
|
|
const outputStream = new ArrayStream();
|
|
|
|
outputStream.write = (data) => accum += data.replace('\r', '');
|
|
|
|
const r = repl.start({
|
|
prompt: '',
|
|
input: inputStream,
|
|
output: outputStream,
|
|
terminal: false,
|
|
useColors: false
|
|
});
|
|
|
|
r.write(`${command}\n`);
|
|
assert.strictEqual(accum, expected);
|
|
r.close();
|
|
}
|
|
|
|
const tests = [
|
|
{
|
|
// test .load for a file that throws
|
|
command: `.load ${fixtures.path('repl-pretty-stack.js')}`,
|
|
expected: 'Thrown:\nError: Whoops!\n at repl:9:24\n' +
|
|
' at d (repl:12:3)\n at c (repl:9:3)\n' +
|
|
' at b (repl:6:3)\n at a (repl:3:3)\n'
|
|
},
|
|
{
|
|
command: 'let x y;',
|
|
expected: 'Thrown:\n' +
|
|
'let x y;\n ^\n\nSyntaxError: Unexpected identifier\n'
|
|
},
|
|
{
|
|
command: 'throw new Error(\'Whoops!\')',
|
|
expected: 'Thrown:\nError: Whoops!\n'
|
|
},
|
|
{
|
|
command: 'foo = bar;',
|
|
expected: 'Thrown:\nReferenceError: bar is not defined\n'
|
|
},
|
|
// test anonymous IIFE
|
|
{
|
|
command: '(function() { throw new Error(\'Whoops!\'); })()',
|
|
expected: 'Thrown:\nError: Whoops!\n at repl:1:21\n'
|
|
}
|
|
];
|
|
|
|
tests.forEach(run);
|