From 03dbef2ac2ae38551e4fa3017c001925ea2c3c55 Mon Sep 17 00:00:00 2001
From: Rich Trott <rtrott@gmail.com>
Date: Wed, 10 Feb 2016 21:44:15 -0800
Subject: [PATCH] test: minimal repl eval option test

Fixes: https://github.com/nodejs/node/issues/3544
PR-URL: https://github.com/nodejs/node/pull/5192
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
---
 test/parallel/test-repl-eval.js | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 test/parallel/test-repl-eval.js

diff --git a/test/parallel/test-repl-eval.js b/test/parallel/test-repl-eval.js
new file mode 100644
index 0000000000..7e5c7d3994
--- /dev/null
+++ b/test/parallel/test-repl-eval.js
@@ -0,0 +1,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);
+  });
+}