mirror of https://github.com/lukechilds/node.git
Browse Source
Both are simple utility functions defined by the WHATWG console spec (https://console.spec.whatwg.org/). PR-URL: https://github.com/nodejs/node/pull/12678 Ref: https://github.com/nodejs/node/issues/12675 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>v6
4 changed files with 194 additions and 0 deletions
@ -0,0 +1,22 @@ |
|||
'use strict'; |
|||
|
|||
require('../common'); |
|||
const assert = require('assert'); |
|||
|
|||
const stdoutWrite = process.stdout.write; |
|||
|
|||
// The sequence for moving the cursor to 0,0 and clearing screen down
|
|||
const check = '\u001b[1;1H\u001b[0J'; |
|||
|
|||
function doTest(isTTY, check) { |
|||
let buf = ''; |
|||
process.stdout.isTTY = isTTY; |
|||
process.stdout.write = (string) => buf += string; |
|||
console.clear(); |
|||
process.stdout.write = stdoutWrite; |
|||
assert.strictEqual(buf, check); |
|||
} |
|||
|
|||
// Fake TTY
|
|||
doTest(true, check); |
|||
doTest(false, ''); |
@ -0,0 +1,63 @@ |
|||
'use strict'; |
|||
|
|||
require('../common'); |
|||
const assert = require('assert'); |
|||
|
|||
const stdoutWrite = process.stdout.write; |
|||
|
|||
let buf = ''; |
|||
|
|||
process.stdout.write = (string) => buf = string; |
|||
|
|||
console.count(); |
|||
assert.strictEqual(buf, 'default: 1\n'); |
|||
|
|||
// 'default' and undefined are equivalent
|
|||
console.count('default'); |
|||
assert.strictEqual(buf, 'default: 2\n'); |
|||
|
|||
console.count('a'); |
|||
assert.strictEqual(buf, 'a: 1\n'); |
|||
|
|||
console.count('b'); |
|||
assert.strictEqual(buf, 'b: 1\n'); |
|||
|
|||
console.count('a'); |
|||
assert.strictEqual(buf, 'a: 2\n'); |
|||
|
|||
console.count(); |
|||
assert.strictEqual(buf, 'default: 3\n'); |
|||
|
|||
console.count({}); |
|||
assert.strictEqual(buf, '[object Object]: 1\n'); |
|||
|
|||
console.count(1); |
|||
assert.strictEqual(buf, '1: 1\n'); |
|||
|
|||
console.count(null); |
|||
assert.strictEqual(buf, 'null: 1\n'); |
|||
|
|||
console.count('null'); |
|||
assert.strictEqual(buf, 'null: 2\n'); |
|||
|
|||
console.countReset(); |
|||
console.count(); |
|||
assert.strictEqual(buf, 'default: 1\n'); |
|||
|
|||
console.countReset('a'); |
|||
console.count('a'); |
|||
assert.strictEqual(buf, 'a: 1\n'); |
|||
|
|||
// countReset('a') only reset the a counter
|
|||
console.count(); |
|||
assert.strictEqual(buf, 'default: 2\n'); |
|||
|
|||
process.stdout.write = stdoutWrite; |
|||
|
|||
// Symbol labels do not work
|
|||
assert.throws( |
|||
() => console.count(Symbol('test')), |
|||
/^TypeError: Cannot convert a Symbol value to a string$/); |
|||
assert.throws( |
|||
() => console.countReset(Symbol('test')), |
|||
/^TypeError: Cannot convert a Symbol value to a string$/); |
Loading…
Reference in new issue