From 51b5f4271e9164b0de9cc5a7e3223f948d6e7270 Mon Sep 17 00:00:00 2001 From: Bryan English Date: Wed, 18 Nov 2015 17:42:05 -0800 Subject: [PATCH] test: add test for repl.defineCommand() It also tests displayPrompt by checking for '> '. PR-URL: https://github.com/nodejs/node/pull/3908 Reviewed-By: James M Snell Reviewed-By: Sakthipriyan Vairamani Reviewed-By: Jeremiah Senkpiel --- test/parallel/test-repl-definecommand.js | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/parallel/test-repl-definecommand.js diff --git a/test/parallel/test-repl-definecommand.js b/test/parallel/test-repl-definecommand.js new file mode 100644 index 00000000000000..a28689a55d1b1e --- /dev/null +++ b/test/parallel/test-repl-definecommand.js @@ -0,0 +1,43 @@ +'use strict'; + +require('../common'); + +const stream = require('stream'), + assert = require('assert'), + repl = require('repl'); + +var output = ''; +const inputStream = new stream.PassThrough(); +const outputStream = new stream.PassThrough(); +outputStream.on('data', function(d) { + output += d; +}); + +const r = repl.start({ + input: inputStream, + output: outputStream, + terminal: true +}); + +r.defineCommand('say1', { + help: 'help for say1', + action: function(thing) { + output = ''; + this.write('hello ' + thing); + this.displayPrompt(); + } +}); + +r.defineCommand('say2', function() { + output = ''; + this.write('hello from say2'); + this.displayPrompt(); +}); + +inputStream.write('.help\n'); +assert(/\nsay1\thelp for say1\n/.test(output), 'help for say1 not present'); +assert(/\nsay2\t\n/.test(output), 'help for say2 not present'); +inputStream.write('.say1 node developer\n'); +assert(/> hello node developer/.test(output), 'say1 outputted incorrectly'); +inputStream.write('.say2 node developer\n'); +assert(/> hello from say2/.test(output), 'say2 outputted incorrectly');