summaryrefslogtreecommitdiff
path: root/test/parallel/test-repl-unexpected-token-recoverable.js
blob: c4b3a08e969000fdf3fdb06bd222d661a1b88a60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
'use strict';
/*
 * This is a regression test for https://github.com/joyent/node/issues/8874.
 */
require('../common');
const assert = require('assert');

const spawn = require('child_process').spawn;
// Use -i to force node into interactive mode, despite stdout not being a TTY
const args = [ '-i' ];
const child = spawn(process.execPath, args);

const input = 'var foo = "bar\\\nbaz"';
// Match '...' as well since it marks a multi-line statement
const expectOut = /^> \.\.\. undefined\n/;

child.stderr.setEncoding('utf8');
child.stderr.on('data', function(c) {
  throw new Error('child.stderr be silent');
});

child.stdout.setEncoding('utf8');
let out = '';
child.stdout.on('data', function(c) {
  out += c;
});

child.stdout.on('end', function() {
  assert(expectOut.test(out));
  console.log('ok');
});

child.stdin.end(input);