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-table.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-table.js')
-rw-r--r-- | cli/tests/node_compat/test/parallel/test-console-table.js | 300 |
1 files changed, 0 insertions, 300 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-console-table.js b/cli/tests/node_compat/test/parallel/test-console-table.js deleted file mode 100644 index a7fddac1e..000000000 --- a/cli/tests/node_compat/test/parallel/test-console-table.js +++ /dev/null @@ -1,300 +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 assert = require('assert'); -const { Console } = require('console'); - -const queue = []; - -const console = new Console({ write: (x) => { - queue.push(x); -}, removeListener: () => {} }, process.stderr, false); - -function test(data, only, expected) { - if (arguments.length === 2) { - expected = only; - only = undefined; - } - console.table(data, only); - assert.deepStrictEqual( - queue.shift().split('\n'), - expected.trimLeft().split('\n') - ); -} - -assert.throws(() => console.table([], false), { - code: 'ERR_INVALID_ARG_TYPE', -}); - -test(null, 'null\n'); -test(undefined, 'undefined\n'); -test(false, 'false\n'); -test('hi', 'hi\n'); -test(Symbol(), 'Symbol()\n'); -test(function() {}, '[Function (anonymous)]\n'); - -test([1, 2, 3], ` -┌─────────┬────────┐ -│ (index) │ Values │ -├─────────┼────────┤ -│ 0 │ 1 │ -│ 1 │ 2 │ -│ 2 │ 3 │ -└─────────┴────────┘ -`); - -test([Symbol(), 5, [10]], ` -┌─────────┬────┬──────────┐ -│ (index) │ 0 │ Values │ -├─────────┼────┼──────────┤ -│ 0 │ │ Symbol() │ -│ 1 │ │ 5 │ -│ 2 │ 10 │ │ -└─────────┴────┴──────────┘ -`); - -test([null, 5], ` -┌─────────┬────────┐ -│ (index) │ Values │ -├─────────┼────────┤ -│ 0 │ null │ -│ 1 │ 5 │ -└─────────┴────────┘ -`); - -test([undefined, 5], ` -┌─────────┬───────────┐ -│ (index) │ Values │ -├─────────┼───────────┤ -│ 0 │ undefined │ -│ 1 │ 5 │ -└─────────┴───────────┘ -`); - -test({ a: 1, b: Symbol(), c: [10] }, ` -┌─────────┬────┬──────────┐ -│ (index) │ 0 │ Values │ -├─────────┼────┼──────────┤ -│ a │ │ 1 │ -│ b │ │ Symbol() │ -│ c │ 10 │ │ -└─────────┴────┴──────────┘ -`); - -test(new Map([ ['a', 1], [Symbol(), [2]] ]), ` -┌───────────────────┬──────────┬────────┐ -│ (iteration index) │ Key │ Values │ -├───────────────────┼──────────┼────────┤ -│ 0 │ 'a' │ 1 │ -│ 1 │ Symbol() │ [ 2 ] │ -└───────────────────┴──────────┴────────┘ -`); - -test(new Set([1, 2, Symbol()]), ` -┌───────────────────┬──────────┐ -│ (iteration index) │ Values │ -├───────────────────┼──────────┤ -│ 0 │ 1 │ -│ 1 │ 2 │ -│ 2 │ Symbol() │ -└───────────────────┴──────────┘ -`); - -test({ a: 1, b: 2 }, ['a'], ` -┌─────────┬───┐ -│ (index) │ a │ -├─────────┼───┤ -│ a │ │ -│ b │ │ -└─────────┴───┘ -`); - -test([{ a: 1, b: 2 }, { a: 3, c: 4 }], ['a'], ` -┌─────────┬───┐ -│ (index) │ a │ -├─────────┼───┤ -│ 0 │ 1 │ -│ 1 │ 3 │ -└─────────┴───┘ -`); - -test(new Map([[1, 1], [2, 2], [3, 3]]).entries(), ` -┌───────────────────┬─────┬────────┐ -│ (iteration index) │ Key │ Values │ -├───────────────────┼─────┼────────┤ -│ 0 │ 1 │ 1 │ -│ 1 │ 2 │ 2 │ -│ 2 │ 3 │ 3 │ -└───────────────────┴─────┴────────┘ -`); - -test(new Map([[1, 1], [2, 2], [3, 3]]).values(), ` -┌───────────────────┬────────┐ -│ (iteration index) │ Values │ -├───────────────────┼────────┤ -│ 0 │ 1 │ -│ 1 │ 2 │ -│ 2 │ 3 │ -└───────────────────┴────────┘ -`); - -test(new Map([[1, 1], [2, 2], [3, 3]]).keys(), ` -┌───────────────────┬────────┐ -│ (iteration index) │ Values │ -├───────────────────┼────────┤ -│ 0 │ 1 │ -│ 1 │ 2 │ -│ 2 │ 3 │ -└───────────────────┴────────┘ -`); - -test(new Set([1, 2, 3]).values(), ` -┌───────────────────┬────────┐ -│ (iteration index) │ Values │ -├───────────────────┼────────┤ -│ 0 │ 1 │ -│ 1 │ 2 │ -│ 2 │ 3 │ -└───────────────────┴────────┘ -`); - - -test({ a: { a: 1, b: 2, c: 3 } }, ` -┌─────────┬───┬───┬───┐ -│ (index) │ a │ b │ c │ -├─────────┼───┼───┼───┤ -│ a │ 1 │ 2 │ 3 │ -└─────────┴───┴───┴───┘ -`); - -test({ a: { a: { a: 1, b: 2, c: 3 } } }, ` -┌─────────┬──────────┐ -│ (index) │ a │ -├─────────┼──────────┤ -│ a │ [Object] │ -└─────────┴──────────┘ -`); - -test({ a: [1, 2] }, ` -┌─────────┬───┬───┐ -│ (index) │ 0 │ 1 │ -├─────────┼───┼───┤ -│ a │ 1 │ 2 │ -└─────────┴───┴───┘ -`); - -test({ a: [1, 2, 3, 4, 5], b: 5, c: { e: 5 } }, ` -┌─────────┬───┬───┬───┬───┬───┬───┬────────┐ -│ (index) │ 0 │ 1 │ 2 │ 3 │ 4 │ e │ Values │ -├─────────┼───┼───┼───┼───┼───┼───┼────────┤ -│ a │ 1 │ 2 │ 3 │ 4 │ 5 │ │ │ -│ b │ │ │ │ │ │ │ 5 │ -│ c │ │ │ │ │ │ 5 │ │ -└─────────┴───┴───┴───┴───┴───┴───┴────────┘ -`); - -test(new Uint8Array([1, 2, 3]), ` -┌─────────┬────────┐ -│ (index) │ Values │ -├─────────┼────────┤ -│ 0 │ 1 │ -│ 1 │ 2 │ -│ 2 │ 3 │ -└─────────┴────────┘ -`); - -test(Buffer.from([1, 2, 3]), ` -┌─────────┬────────┐ -│ (index) │ Values │ -├─────────┼────────┤ -│ 0 │ 1 │ -│ 1 │ 2 │ -│ 2 │ 3 │ -└─────────┴────────┘ -`); - -test({ a: undefined }, ['x'], ` -┌─────────┬───┐ -│ (index) │ x │ -├─────────┼───┤ -│ a │ │ -└─────────┴───┘ -`); - -test([], ` -┌─────────┐ -│ (index) │ -├─────────┤ -└─────────┘ -`); - -test(new Map(), ` -┌───────────────────┬─────┬────────┐ -│ (iteration index) │ Key │ Values │ -├───────────────────┼─────┼────────┤ -└───────────────────┴─────┴────────┘ -`); - -test([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ` -┌─────────┬─────┬─────┐ -│ (index) │ a │ b │ -├─────────┼─────┼─────┤ -│ 0 │ 1 │ 'Y' │ -│ 1 │ 'Z' │ 2 │ -└─────────┴─────┴─────┘ -`); - -{ - const line = '─'.repeat(79); - const header = `${' '.repeat(37)}name${' '.repeat(40)}`; - const name = 'very long long long long long long long long long long long ' + - 'long long long long'; - test([{ name }], ` -┌─────────┬──${line}──┐ -│ (index) │ ${header}│ -├─────────┼──${line}──┤ -│ 0 │ '${name}' │ -└─────────┴──${line}──┘ -`); -} - -test({ foo: '¥', bar: '¥' }, ` -┌─────────┬────────┐ -│ (index) │ Values │ -├─────────┼────────┤ -│ foo │ '¥' │ -│ bar │ '¥' │ -└─────────┴────────┘ -`); - -test({ foo: '你好', bar: 'hello' }, ` -┌─────────┬─────────┐ -│ (index) │ Values │ -├─────────┼─────────┤ -│ foo │ '你好' │ -│ bar │ 'hello' │ -└─────────┴─────────┘ -`); - -// Regression test for prototype pollution via console.table. Earlier versions -// of Node.js created an object with a non-null prototype within console.table -// and then wrote to object[column][index], which lead to an error as well as -// modifications to Object.prototype. -test([{ foo: 10 }, { foo: 20 }], ['__proto__'], ` -┌─────────┬───────────┐ -│ (index) │ __proto__ │ -├─────────┼───────────┤ -│ 0 │ │ -│ 1 │ │ -└─────────┴───────────┘ -`); -assert.strictEqual('0' in Object.prototype, false); -assert.strictEqual('1' in Object.prototype, false); |