current commit
260725.7 · repl: add basic syntax highlighting
'use strict';
const common = require('../common');
const assert = require('assert');
const { startNewREPLServer } = require('../common/repl');
const { stripVTControlCharacters } = require('util');

const input = ['const foo = {', '};', 'foo'];

async function run({ useColors }) {
  const { replServer, output, run: write } = startNewREPLServer({ useColors });

  await write(input);

  // The output contains various escape codes, including
  // screen clears and others, so we trim them all to
  // simplify this test.
  const actual = stripVTControlCharacters(output.accumulator);

  const firstStatementIdx = actual.indexOf(input.slice(0, 1).join('\n| '));
  assert(firstStatementIdx > -1);

  assert(actual.slice(firstStatementIdx).includes('undefined'));
  assert(actual.slice(firstStatementIdx).includes('foo'));

  replServer.on('exit', common.mustCall());
  replServer.close();
}

run({ useColors: true })
  .then(() => run({ useColors: false }))
  .then(common.mustCall());