summaryrefslogtreecommitdiff
path: root/test/parallel/test-repl-eval.js
blob: 7e5c7d39946c6774b36f83d8ae66a8df93ddefc2 (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
'use strict';
const common = require('../common');
const assert = require('assert');
const repl = require('repl');

{
  let evalCalledWithExpectedArgs = false;

  const options = {
    eval: common.mustCall((cmd, context) => {
      // Assertions here will not cause the test to exit with an error code
      // so set a boolean that is checked in process.on('exit',...) instead.
      evalCalledWithExpectedArgs = (cmd === 'foo\n' && context.foo === 'bar');
    })
  };

  const r = repl.start(options);
  r.context = {foo: 'bar'};

  try {
    r.write('foo\n');
  } finally {
    r.write('.exit\n');
  }

  process.on('exit', () => {
    assert(evalCalledWithExpectedArgs);
  });
}