node/test/pseudo-tty/ref_keeps_node_running.js
cjihrig df073cdda4
tty: make process.binding('tty_wrap') internal
PR-URL: https://github.com/nodejs/node/pull/22477
Refs: https://github.com/nodejs/node/issues/22160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2018-08-29 12:28:51 -04:00

31 lines
769 B
JavaScript

// Flags: --expose-internals --no-warnings
'use strict';
require('../common');
const { internalBinding } = require('internal/test/binding');
const { TTY, isTTY } = internalBinding('tty_wrap');
const strictEqual = require('assert').strictEqual;
strictEqual(isTTY(0), true, 'fd 0 is not a TTY');
const handle = new TTY(0);
handle.readStart();
handle.onread = () => {};
function isHandleActive(handle) {
return process._getActiveHandles().some((active) => active === handle);
}
strictEqual(isHandleActive(handle), true, 'TTY handle not initially active');
handle.unref();
strictEqual(isHandleActive(handle), false, 'TTY handle active after unref()');
handle.ref();
strictEqual(isHandleActive(handle), true, 'TTY handle inactive after ref()');
handle.unref();