diff options
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs')
-rw-r--r-- | cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs b/cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs deleted file mode 100644 index fb61b52d9..000000000 --- a/cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs +++ /dev/null @@ -1,233 +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 "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals - - -import '../common/index.mjs'; -import assert from 'assert'; -import { Readline } from 'readline/promises'; -import { setImmediate } from 'timers/promises'; -import { Writable } from 'stream'; - -import utils from 'internal/readline/utils'; -const { CSI } = utils; - -const INVALID_ARG = { - name: 'TypeError', - code: 'ERR_INVALID_ARG_TYPE', -}; - -class TestWritable extends Writable { - data = ''; - _write(chunk, encoding, callback) { - this.data += chunk.toString(); - callback(); - } -} - -[ - undefined, null, - 0, 1, 1n, 1.1, NaN, Infinity, - true, false, - Symbol(), - '', '1', - [], {}, () => {}, -].forEach((arg) => - assert.throws(() => new Readline(arg), INVALID_ARG) -); - -{ - const writable = new TestWritable(); - const readline = new Readline(writable); - - await readline.clearScreenDown().commit(); - assert.deepStrictEqual(writable.data, CSI.kClearScreenDown); - await readline.clearScreenDown().commit(); - - writable.data = ''; - await readline.clearScreenDown().rollback(); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - await readline.clearLine(-1).commit(); - assert.deepStrictEqual(writable.data, CSI.kClearToLineBeginning); - - writable.data = ''; - await readline.clearLine(1).commit(); - assert.deepStrictEqual(writable.data, CSI.kClearToLineEnd); - - writable.data = ''; - await readline.clearLine(0).commit(); - assert.deepStrictEqual(writable.data, CSI.kClearLine); - - writable.data = ''; - await readline.clearLine(-1).commit(); - assert.deepStrictEqual(writable.data, CSI.kClearToLineBeginning); - - await readline.clearLine(0, null).commit(); - - // Nothing is written when moveCursor 0, 0 - for (const set of - [ - [0, 0, ''], - [1, 0, '\x1b[1C'], - [-1, 0, '\x1b[1D'], - [0, 1, '\x1b[1B'], - [0, -1, '\x1b[1A'], - [1, 1, '\x1b[1C\x1b[1B'], - [-1, 1, '\x1b[1D\x1b[1B'], - [-1, -1, '\x1b[1D\x1b[1A'], - [1, -1, '\x1b[1C\x1b[1A'], - ]) { - writable.data = ''; - await readline.moveCursor(set[0], set[1]).commit(); - assert.deepStrictEqual(writable.data, set[2]); - writable.data = ''; - await readline.moveCursor(set[0], set[1]).commit(); - assert.deepStrictEqual(writable.data, set[2]); - } - - - await readline.moveCursor(1, 1, null).commit(); - - writable.data = ''; - [ - undefined, null, - true, false, - Symbol(), - '', '1', - [], {}, () => {}, - ].forEach((arg) => - assert.throws(() => readline.cursorTo(arg), INVALID_ARG) - ); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - assert.throws(() => readline.cursorTo('a', 'b'), INVALID_ARG); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - assert.throws(() => readline.cursorTo('a', 1), INVALID_ARG); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - assert.throws(() => readline.cursorTo(1, 'a'), INVALID_ARG); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - await readline.cursorTo(1).commit(); - assert.strictEqual(writable.data, '\x1b[2G'); - - writable.data = ''; - await readline.cursorTo(1, 2).commit(); - assert.strictEqual(writable.data, '\x1b[3;2H'); - - writable.data = ''; - await readline.cursorTo(1, 2).commit(); - assert.strictEqual(writable.data, '\x1b[3;2H'); - - writable.data = ''; - await readline.cursorTo(1).cursorTo(1, 2).commit(); - assert.strictEqual(writable.data, '\x1b[2G\x1b[3;2H'); - - writable.data = ''; - await readline.cursorTo(1).commit(); - assert.strictEqual(writable.data, '\x1b[2G'); - - // Verify that cursorTo() rejects if x or y is NaN. - [1.1, NaN, Infinity].forEach((arg) => { - assert.throws(() => readline.cursorTo(arg), { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - }); - }); - - [1.1, NaN, Infinity].forEach((arg) => { - assert.throws(() => readline.cursorTo(1, arg), { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - }); - }); - - assert.throws(() => readline.cursorTo(NaN, NaN), { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - }); -} - -{ - const error = new Error(); - const writable = new class extends Writable { - _write() { throw error; } - }(); - const readline = new Readline(writable); - - await assert.rejects(readline.cursorTo(1).commit(), error); -} - -{ - const writable = new TestWritable(); - const readline = new Readline(writable, { autoCommit: true }); - - await readline.clearScreenDown(); - await setImmediate(); // Wait for next tick as auto commit is asynchronous. - assert.deepStrictEqual(writable.data, CSI.kClearScreenDown); -} - -{ - const writable = new TestWritable(); - const readline = new Readline(writable, { autoCommit: true }); - for (const [dir, data] of - [ - [-1, CSI.kClearToLineBeginning], - [1, CSI.kClearToLineEnd], - [0, CSI.kClearLine], - ]) { - writable.data = ''; - readline.clearLine(dir); - await setImmediate(); // Wait for next tick as auto commit is asynchronous. - assert.deepStrictEqual(writable.data, data); - } -} - -{ - const writable = new TestWritable(); - const readline = new Readline(writable, { autoCommit: true }); - for (const [x, y, data] of - [ - [0, 0, ''], - [1, 0, '\x1b[1C'], - [-1, 0, '\x1b[1D'], - [0, 1, '\x1b[1B'], - [0, -1, '\x1b[1A'], - [1, 1, '\x1b[1C\x1b[1B'], - [-1, 1, '\x1b[1D\x1b[1B'], - [-1, -1, '\x1b[1D\x1b[1A'], - [1, -1, '\x1b[1C\x1b[1A'], - ]) { - writable.data = ''; - readline.moveCursor(x, y); - await setImmediate(); // Wait for next tick as auto commit is asynchronous. - assert.deepStrictEqual(writable.data, data); - } -} - -{ - const writable = new TestWritable(); - const readline = new Readline(writable, { autoCommit: true }); - for (const [x, y, data] of - [ - [1, undefined, '\x1b[2G'], - [1, 2, '\x1b[3;2H'], - ]) { - writable.data = ''; - readline.cursorTo(x, y); - await setImmediate(); // Wait for next tick as auto commit is asynchronous. - assert.deepStrictEqual(writable.data, data); - } -} |