| 'use strict'; |
| const common = require('../common'); |
| const assert = require('assert'); |
| const cp = require('child_process'); |
| const child = cp.spawn(process.execPath, ['-i']); |
| let output = ''; |
| |
| child.stdout.setEncoding('utf8'); |
| child.stdout.on('data', (data) => { |
| output += data; |
| }); |
| |
| child.on('exit', common.mustCall(() => { |
| const results = output.split('\n'); |
| results.shift(); |
| assert.deepStrictEqual( |
| results, |
| [ |
| 'Type ".help" for more information.', |
| // x\n |
| '> Uncaught ReferenceError: x is not defined', |
| // Added `uncaughtException` listener. |
| '> short', |
| 'undefined', |
| // x\n |
| '> Foobar', |
| '> ' |
| ] |
| ); |
| })); |
| |
| child.stdin.write('x\n'); |
| child.stdin.write( |
| 'process.on("uncaughtException", () => console.log("Foobar"));' + |
| 'console.log("short")\n'); |
| child.stdin.write('x\n'); |
| child.stdin.end(); |