diff options
author | Matt Mastracci <matthew@mastracci.com> | 2024-02-10 13:22:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-10 20:22:13 +0000 |
commit | f5e46c9bf2f50d66a953fa133161fc829cecff06 (patch) | |
tree | 8faf2f5831c1c7b11d842cd9908d141082c869a5 /cli/tests/node_compat/test/parallel/test-console-group.js | |
parent | d2477f780630a812bfd65e3987b70c0d309385bb (diff) |
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests ->
tests, and updates of relative paths for files.
This is the first step towards aggregate all of the integration test
files under tests/, which will lead to a set of integration tests that
can run without the CLI binary being built.
While we could leave these tests under `cli`, it would require us to
keep a more complex directory structure for the various test runners. In
addition, we have a lot of complexity to ignore various test files in
the `cli` project itself (cargo publish exclusion rules, autotests =
false, etc).
And finally, the `tests/` folder will eventually house the `test_ffi`,
`test_napi` and other testing code, reducing the size of the root repo
directory.
For easier review, the extremely large and noisy "move" is in the first
commit (with no changes -- just a move), while the remainder of the
changes to actual files is in the second commit.
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/, - } - ); - }); -} |