test: add multiline repl input regression test
This commit adds a regression test for de848ac1e0483327a2ce8716c3f8567eaeacb660, which broke multiline input in the REPL. PR-URL: https://github.com/nodejs/node/pull/18718 Refs: https://github.com/nodejs/node/pull/17828 Refs: https://github.com/nodejs/node/pull/18715 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
parent
755e07cb73
commit
92c86fd84d
35
test/parallel/test-repl-multiline.js
Normal file
35
test/parallel/test-repl-multiline.js
Normal file
@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
const repl = require('repl');
|
||||
const inputStream = new common.ArrayStream();
|
||||
const outputStream = new common.ArrayStream();
|
||||
const input = ['var foo = {', '};', 'foo;'];
|
||||
let output = '';
|
||||
|
||||
outputStream.write = (data) => { output += data.replace('\r', ''); };
|
||||
|
||||
const r = repl.start({
|
||||
prompt: '',
|
||||
input: inputStream,
|
||||
output: outputStream,
|
||||
terminal: true,
|
||||
useColors: false
|
||||
});
|
||||
|
||||
r.on('exit', common.mustCall(() => {
|
||||
const actual = output.split('\n');
|
||||
|
||||
// Validate the output, which contains terminal escape codes.
|
||||
assert.strictEqual(actual.length, 6);
|
||||
assert.ok(actual[0].endsWith(input[0]));
|
||||
assert.ok(actual[1].includes('... '));
|
||||
assert.ok(actual[1].endsWith(input[1]));
|
||||
assert.strictEqual(actual[2], 'undefined');
|
||||
assert.ok(actual[3].endsWith(input[2]));
|
||||
assert.strictEqual(actual[4], '{}');
|
||||
// Ignore the last line, which is nothing but escape codes.
|
||||
}));
|
||||
|
||||
inputStream.run(input);
|
||||
r.close();
|
Loading…
x
Reference in New Issue
Block a user