summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorcjihrig <cjihrig@gmail.com>2019-07-16 11:46:59 -0400
committercjihrig <cjihrig@gmail.com>2019-07-18 17:20:45 -0400
commitd0894773a404b04ffd2a050131e73a5622a591c6 (patch)
tree40c12e9e218e50e6f23e536f7663d000ecc6544c /test
parent3da44b0b52617556a1c3816a0ae9167a1848655f (diff)
downloadandroid-node-v8-d0894773a404b04ffd2a050131e73a5622a591c6.tar.gz
android-node-v8-d0894773a404b04ffd2a050131e73a5622a591c6.tar.bz2
android-node-v8-d0894773a404b04ffd2a050131e73a5622a591c6.zip
tty: expose stream API from readline methods
This commit exposes the return value and callback of the underlying readline APIs from the tty module. PR-URL: https://github.com/nodejs/node/pull/28721 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-tty-backwards-api.js31
1 files changed, 25 insertions, 6 deletions
diff --git a/test/parallel/test-tty-backwards-api.js b/test/parallel/test-tty-backwards-api.js
index 7b6dc3c092..b4005bad61 100644
--- a/test/parallel/test-tty-backwards-api.js
+++ b/test/parallel/test-tty-backwards-api.js
@@ -1,6 +1,8 @@
// Flags: --expose-internals
'use strict';
const common = require('../common');
+const assert = require('assert');
+const readline = require('readline');
const noop = () => {};
const { internalBinding } = require('internal/test/binding');
@@ -13,15 +15,32 @@ TTY.prototype = {
const { WriteStream } = require('tty');
-const methods = [
+[
'cursorTo',
'moveCursor',
'clearLine',
'clearScreenDown'
-];
+].forEach((method) => {
+ readline[method] = common.mustCall(function() {
+ const lastArg = arguments[arguments.length - 1];
-methods.forEach((method) => {
- require('readline')[method] = common.mustCall();
- const writeStream = new WriteStream(1);
- writeStream[method](1, 2);
+ if (typeof lastArg === 'function') {
+ process.nextTick(lastArg);
+ }
+
+ return true;
+ }, 2);
});
+
+const writeStream = new WriteStream(1);
+
+// Verify that the corresponding readline methods are called, that the return
+// values are propagated, and any callbacks are invoked.
+assert.strictEqual(writeStream.cursorTo(1, 2), true);
+assert.strictEqual(writeStream.cursorTo(1, 2, common.mustCall()), true);
+assert.strictEqual(writeStream.moveCursor(1, 2), true);
+assert.strictEqual(writeStream.moveCursor(1, 2, common.mustCall()), true);
+assert.strictEqual(writeStream.clearLine(1), true);
+assert.strictEqual(writeStream.clearLine(1, common.mustCall()), true);
+assert.strictEqual(writeStream.clearScreenDown(), true);
+assert.strictEqual(writeStream.clearScreenDown(common.mustCall()), true);