| 'use strict'; |
| const common = require('../common'); |
| const assert = require('assert'); |
| const repl = require('repl'); |
| const { PassThrough } = require('stream'); |
| const input = new PassThrough(); |
| const output = new PassThrough(); |
| |
| const r = repl.start({ |
| input, output, |
| eval: common.mustCall((code, context, filename, cb) => { |
| r.setPrompt('prompt! '); |
| cb(new Error('err')); |
| }) |
| }); |
| |
| input.end('foo\n'); |
| |
| // The output includes exactly one post-error prompt. |
| const out = output.read().toString(); |
| assert.match(out, /prompt!/); |
| assert.doesNotMatch(out, /prompt![\S\s]*prompt!/); |
| output.on('data', common.mustNotCall()); |