test: actually test tty getColorDepth()
TTY tests should almost never be placed in `/parallel/`. Skipping TTY tests there due to missing tty fds just means they will never be run, ever, on any system. This moves the tty-get-color-depth test to `/pseudo-tty/` where the test runner will actually make a pty fd. Refs: https://github.com/nodejs/node/pull/17615 PR-URL: https://github.com/nodejs/node/pull/18800 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
92bf2492cd
commit
7514eb3cff
@ -1,35 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
const assert = require('assert').strict;
|
||||
/* eslint-disable no-restricted-properties */
|
||||
const { WriteStream } = require('tty');
|
||||
|
||||
const fd = common.getTTYfd();
|
||||
|
||||
// Give up if we did not find a tty
|
||||
if (fd === -1)
|
||||
common.skip();
|
||||
|
||||
const writeStream = new WriteStream(fd);
|
||||
|
||||
let depth = writeStream.getColorDepth();
|
||||
|
||||
assert.equal(typeof depth, 'number');
|
||||
assert(depth >= 1 && depth <= 24);
|
||||
|
||||
// If the terminal does not support colors, skip the rest
|
||||
if (depth === 1)
|
||||
common.skip();
|
||||
|
||||
assert.notEqual(writeStream.getColorDepth({ TERM: 'dumb' }), depth);
|
||||
|
||||
// Deactivate colors
|
||||
const tmp = process.env.NODE_DISABLE_COLORS;
|
||||
process.env.NODE_DISABLE_COLORS = 1;
|
||||
|
||||
depth = writeStream.getColorDepth();
|
||||
|
||||
assert.equal(depth, 1);
|
||||
|
||||
process.env.NODE_DISABLE_COLORS = tmp;
|
36
test/pseudo-tty/test-tty-get-color-depth.js
Normal file
36
test/pseudo-tty/test-tty-get-color-depth.js
Normal file
@ -0,0 +1,36 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
const assert = require('assert').strict;
|
||||
/* eslint-disable no-restricted-properties */
|
||||
const { WriteStream } = require('tty');
|
||||
|
||||
const fd = common.getTTYfd();
|
||||
const writeStream = new WriteStream(fd);
|
||||
|
||||
{
|
||||
const depth = writeStream.getColorDepth();
|
||||
|
||||
assert.equal(typeof depth, 'number');
|
||||
assert(depth >= 1 && depth <= 24);
|
||||
|
||||
if (depth === 1) {
|
||||
// Terminal does not support colors, compare to a value that would.
|
||||
assert.notEqual(writeStream.getColorDepth({ COLORTERM: '1' }), depth);
|
||||
} else {
|
||||
// Terminal supports colors, compare to a value that would not.
|
||||
assert.notEqual(writeStream.getColorDepth({ TERM: 'dumb' }), depth);
|
||||
}
|
||||
}
|
||||
|
||||
// Deactivate colors
|
||||
{
|
||||
const tmp = process.env.NODE_DISABLE_COLORS;
|
||||
process.env.NODE_DISABLE_COLORS = 1;
|
||||
|
||||
const depth = writeStream.getColorDepth();
|
||||
|
||||
assert.equal(depth, 1);
|
||||
|
||||
process.env.NODE_DISABLE_COLORS = tmp;
|
||||
}
|
0
test/pseudo-tty/test-tty-get-color-depth.out
Normal file
0
test/pseudo-tty/test-tty-get-color-depth.out
Normal file
Loading…
x
Reference in New Issue
Block a user