diff options
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-console-group.js')
-rw-r--r-- | cli/tests/node_compat/test/parallel/test-console-group.js | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-console-group.js b/cli/tests/node_compat/test/parallel/test-console-group.js deleted file mode 100644 index f07107cec..000000000 --- a/cli/tests/node_compat/test/parallel/test-console-group.js +++ /dev/null @@ -1,248 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually. - -'use strict'; -require('../common'); -const { - hijackStdout, - hijackStderr, - restoreStdout, - restoreStderr -} = require('../common/hijackstdio'); - -const assert = require('assert'); -const Console = require('console').Console; - -let c, stdout, stderr; - -function setup(groupIndentation) { - stdout = ''; - hijackStdout(function(data) { - stdout += data; - }); - - stderr = ''; - hijackStderr(function(data) { - stderr += data; - }); - - c = new Console({ stdout: process.stdout, - stderr: process.stderr, - colorMode: false, - groupIndentation: groupIndentation }); -} - -function teardown() { - restoreStdout(); - restoreStderr(); -} - -// Basic group() functionality -{ - setup(); - const expectedOut = 'This is the outer level\n' + - ' Level 2\n' + - ' Level 3\n' + - ' Back to level 2\n' + - 'Back to the outer level\n' + - 'Still at the outer level\n'; - - - const expectedErr = ' More of level 3\n'; - - c.log('This is the outer level'); - c.group(); - c.log('Level 2'); - c.group(); - c.log('Level 3'); - c.warn('More of level 3'); - c.groupEnd(); - c.log('Back to level 2'); - c.groupEnd(); - c.log('Back to the outer level'); - c.groupEnd(); - c.log('Still at the outer level'); - - assert.strictEqual(stdout, expectedOut); - assert.strictEqual(stderr, expectedErr); - teardown(); -} - -// Group indentation is tracked per Console instance. -{ - setup(); - const expectedOut = 'No indentation\n' + - 'None here either\n' + - ' Now the first console is indenting\n' + - 'But the second one does not\n'; - const expectedErr = ''; - - const c2 = new Console(process.stdout, process.stderr); - c.log('No indentation'); - c2.log('None here either'); - c.group(); - c.log('Now the first console is indenting'); - c2.log('But the second one does not'); - - assert.strictEqual(stdout, expectedOut); - assert.strictEqual(stderr, expectedErr); - teardown(); -} - -// Make sure labels work. -{ - setup(); - const expectedOut = 'This is a label\n' + - ' And this is the data for that label\n'; - const expectedErr = ''; - - c.group('This is a label'); - c.log('And this is the data for that label'); - - assert.strictEqual(stdout, expectedOut); - assert.strictEqual(stderr, expectedErr); - teardown(); -} - -// Check that console.groupCollapsed() is an alias of console.group() -{ - setup(); - const expectedOut = 'Label\n' + - ' Level 2\n' + - ' Level 3\n'; - const expectedErr = ''; - - c.groupCollapsed('Label'); - c.log('Level 2'); - c.groupCollapsed(); - c.log('Level 3'); - - assert.strictEqual(stdout, expectedOut); - assert.strictEqual(stderr, expectedErr); - teardown(); -} - -// Check that multiline strings and object output are indented properly. -{ - setup(); - const expectedOut = 'not indented\n' + - ' indented\n' + - ' also indented\n' + - ' {\n' + - " also: 'a',\n" + - " multiline: 'object',\n" + - " should: 'be',\n" + - " indented: 'properly',\n" + - " kthx: 'bai'\n" + - ' }\n'; - const expectedErr = ''; - - c.log('not indented'); - c.group(); - c.log('indented\nalso indented'); - c.log({ also: 'a', - multiline: 'object', - should: 'be', - indented: 'properly', - kthx: 'bai' }); - - assert.strictEqual(stdout, expectedOut); - assert.strictEqual(stderr, expectedErr); - teardown(); -} - -// Check that the kGroupIndent symbol property is not enumerable -{ - const keys = Reflect.ownKeys(console) - .filter((val) => Object.prototype.propertyIsEnumerable.call(console, val)) - .map((val) => val.toString()); - assert(!keys.includes('Symbol(groupIndent)'), - 'groupIndent should not be enumerable'); -} - -// Check custom groupIndentation. -{ - setup(3); - const expectedOut = 'Set the groupIndentation parameter to 3\n' + - 'This is the outer level\n' + - ' Level 2\n' + - ' Level 3\n' + - ' Back to level 2\n' + - 'Back to the outer level\n' + - 'Still at the outer level\n'; - - - const expectedErr = ' More of level 3\n'; - - c.log('Set the groupIndentation parameter to 3'); - c.log('This is the outer level'); - c.group(); - c.log('Level 2'); - c.group(); - c.log('Level 3'); - c.warn('More of level 3'); - c.groupEnd(); - c.log('Back to level 2'); - c.groupEnd(); - c.log('Back to the outer level'); - c.groupEnd(); - c.log('Still at the outer level'); - - assert.strictEqual(stdout, expectedOut); - assert.strictEqual(stderr, expectedErr); - teardown(); -} - -// Check the correctness of the groupIndentation parameter. -{ - // TypeError - [null, 'str', [], false, true, {}].forEach((e) => { - assert.throws( - () => { - new Console({ stdout: process.stdout, - stderr: process.stderr, - groupIndentation: e }); - }, - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError' - } - ); - }); - - // RangeError for integer - [NaN, 1.01].forEach((e) => { - assert.throws( - () => { - new Console({ stdout: process.stdout, - stderr: process.stderr, - groupIndentation: e }); - }, - { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - message: /an integer/, - } - ); - }); - - // RangeError - [-1, 1001].forEach((e) => { - assert.throws( - () => { - new Console({ stdout: process.stdout, - stderr: process.stderr, - groupIndentation: e }); - }, - { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - message: />= 0 && <= 1000/, - } - ); - }); -} |