1'use strict';
2const common = require('../common');
3const process = require('process');
4
5process.env.TERM = 'dumb';
6
7const repl = require('repl');
8const ArrayStream = require('../common/arraystream');
9
10repl.start('> ');
11
12// Verify <ctrl> + D support.
13{
14  const stream = new ArrayStream();
15  const replServer = new repl.REPLServer({
16    prompt: '> ',
17    terminal: true,
18    input: stream,
19    output: process.stdout,
20    useColors: false,
21  });
22
23  replServer.on('close', common.mustCall());
24  // Verify that <ctrl> + R or <ctrl> + C does not trigger the reverse search.
25  replServer.write(null, { ctrl: true, name: 'r' });
26  replServer.write(null, { ctrl: true, name: 's' });
27  replServer.write(null, { ctrl: true, name: 'd' });
28}
29
30process.stdin.push('conso'); // No completion preview.
31process.stdin.push('le.log("foo")\n');
32process.stdin.push('1 + 2'); // No input preview.
33process.stdin.push('\n');
34process.stdin.push('"str"\n');
35process.stdin.push('console.dir({ a: 1 })\n');
36process.stdin.push('{ a: 1 }\n');
37process.stdin.push('\n');
38process.stdin.push('.exit\n');
39