summaryrefslogtreecommitdiff
path: root/test/parallel/test-repl-eval.js
blob: d775423fb74a520874afe912a519acc7a4182f48 (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';
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 later instead.
      evalCalledWithExpectedArgs = (cmd === 'function f() {}\n' &&
                                    context.foo === 'bar');
    })
  };

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

  try {
    // Default preprocessor transforms
    //  function f() {}  to
    //  var f = function f() {}
    // Test to ensure that original input is preserved.
    // Reference: https://github.com/nodejs/node/issues/9743
    r.write('function f() {}\n');
  } finally {
    r.write('.exit\n');
  }

  assert(evalCalledWithExpectedArgs);
}