diff options
Diffstat (limited to 'cli/tests')
26 files changed, 238 insertions, 63 deletions
diff --git a/cli/tests/node_compat/config.jsonc b/cli/tests/node_compat/config.jsonc index 93a51b671..60449b182 100644 --- a/cli/tests/node_compat/config.jsonc +++ b/cli/tests/node_compat/config.jsonc @@ -22,6 +22,7 @@ "test-buffer-alloc.js", "test-buffer-arraybuffer.js", "test-buffer-bytelength.js", + "test-buffer-copy.js", "test-buffer-from.js", "test-buffer-includes.js", "test-buffer-indexof.js", @@ -88,6 +89,7 @@ "test-querystring.js", "test-readline-interface.js", "test-stdin-from-file-spawn.js", + "test-stream-duplex-from.js", "test-ttywrap-invalid-fd.js", "test-url-urltooptions.js", "test-util-format.js", diff --git a/cli/tests/node_compat/test/common/child_process.js b/cli/tests/node_compat/test/common/child_process.js index c12994e5c..b860d7697 100644 --- a/cli/tests/node_compat/test/common/child_process.js +++ b/cli/tests/node_compat/test/common/child_process.js @@ -52,5 +52,5 @@ module.exports = { cleanupStaleProcess, logAfterTime, kExpiringChildRunTime, - kExpiringParentTimer + kExpiringParentTimer, }; diff --git a/cli/tests/node_compat/test/common/dns.js b/cli/tests/node_compat/test/common/dns.js index 5c7ba39b3..54df6a55e 100644 --- a/cli/tests/node_compat/test/common/dns.js +++ b/cli/tests/node_compat/test/common/dns.js @@ -20,11 +20,11 @@ const types = { MX: 15, TXT: 16, ANY: 255, - CAA: 257 + CAA: 257, }; const classes = { - IN: 1 + IN: 1, }; // Naïve DNS parser/serializer. @@ -41,7 +41,7 @@ function readDomainFromPacket(buffer, offset) { const { nread, domain } = readDomainFromPacket(buffer, offset + length); return { nread: 1 + length + nread, - domain: domain ? `${chunk}.${domain}` : chunk + domain: domain ? `${chunk}.${domain}` : chunk, }; } // Pointer to another part of the packet. @@ -50,7 +50,7 @@ function readDomainFromPacket(buffer, offset) { const pointeeOffset = buffer.readUInt16BE(offset) &~ 0xC000; return { nread: 2, - domain: readDomainFromPacket(buffer, pointeeOffset) + domain: readDomainFromPacket(buffer, pointeeOffset), }; } @@ -323,5 +323,5 @@ module.exports = { parseDNSPacket, errorLookupMock, mockedErrorCode, - mockedSysCall + mockedSysCall, }; diff --git a/cli/tests/node_compat/test/common/hijackstdio.js b/cli/tests/node_compat/test/common/hijackstdio.js index 8e7bd2dc0..38582ece2 100644 --- a/cli/tests/node_compat/test/common/hijackstdio.js +++ b/cli/tests/node_compat/test/common/hijackstdio.js @@ -35,5 +35,5 @@ module.exports = { hijackStdout: hijackStdWritable.bind(null, 'stdout'), hijackStderr: hijackStdWritable.bind(null, 'stderr'), restoreStdout: restoreWritable.bind(null, 'stdout'), - restoreStderr: restoreWritable.bind(null, 'stderr') + restoreStderr: restoreWritable.bind(null, 'stderr'), }; diff --git a/cli/tests/node_compat/test/common/index.mjs b/cli/tests/node_compat/test/common/index.mjs index f2ee456ee..25fe5cbb0 100644 --- a/cli/tests/node_compat/test/common/index.mjs +++ b/cli/tests/node_compat/test/common/index.mjs @@ -44,6 +44,7 @@ const { getCallSite, mustNotCall, mustNotMutateObjectDeep, + parseTestFlags, printSkipMessage, skip, nodeProcessAborted, @@ -95,6 +96,7 @@ export { getCallSite, mustNotCall, mustNotMutateObjectDeep, + parseTestFlags, printSkipMessage, skip, nodeProcessAborted, diff --git a/cli/tests/node_compat/test/common/tmpdir.js b/cli/tests/node_compat/test/common/tmpdir.js index 2c97c51a6..886c4a107 100644 --- a/cli/tests/node_compat/test/common/tmpdir.js +++ b/cli/tests/node_compat/test/common/tmpdir.js @@ -62,7 +62,18 @@ function onexit() { } } +function resolve(...paths) { + return path.resolve(tmpPath, ...paths); +} + +function hasEnoughSpace(size) { + const { bavail, bsize } = fs.statfsSync(tmpPath); + return bavail >= Math.ceil(size / bsize); +} + module.exports = { path: tmpPath, - refresh + refresh, + hasEnoughSpace, + resolve, }; diff --git a/cli/tests/node_compat/test/internet/test-dns-idna2008.js b/cli/tests/node_compat/test/internet/test-dns-idna2008.js index ea7dfe5d7..7308f9deb 100644 --- a/cli/tests/node_compat/test/internet/test-dns-idna2008.js +++ b/cli/tests/node_compat/test/internet/test-dns-idna2008.js @@ -41,7 +41,7 @@ dns.lookup( } assert.ifError(err); assert.strictEqual(address, fixture.expectedAddress); - }) + }), ); dns.promises.lookup(fixture.hostname, { family: fixture.family }) diff --git a/cli/tests/node_compat/test/internet/test-dns-lookup.js b/cli/tests/node_compat/test/internet/test-dns-lookup.js index 2e33800d8..cfd3e758c 100644 --- a/cli/tests/node_compat/test/internet/test-dns-lookup.js +++ b/cli/tests/node_compat/test/internet/test-dns-lookup.js @@ -18,35 +18,35 @@ assert.rejects( dnsPromises.lookup(addresses.NOT_FOUND, { hints: 0, family: 0, - all: false + all: false, }), { code: 'ENOTFOUND', - message: `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}` - } + message: `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}`, + }, ); assert.rejects( dnsPromises.lookup(addresses.NOT_FOUND, { hints: 0, family: 0, - all: true + all: true, }), { code: 'ENOTFOUND', - message: `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}` - } + message: `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}`, + }, ); dns.lookup(addresses.NOT_FOUND, { hints: 0, family: 0, - all: true + all: true, }, common.mustCall((error) => { assert.strictEqual(error.code, 'ENOTFOUND'); assert.strictEqual( error.message, - `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}` + `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}`, ); assert.strictEqual(error.syscall, 'getaddrinfo'); assert.strictEqual(error.hostname, addresses.NOT_FOUND); @@ -55,7 +55,7 @@ dns.lookup(addresses.NOT_FOUND, { assert.throws( () => dnsPromises.lookup(addresses.NOT_FOUND, { family: 'ipv4', - all: 'all' + all: 'all', }), - { code: 'ERR_INVALID_ARG_VALUE' } + { code: 'ERR_INVALID_ARG_VALUE' }, ); diff --git a/cli/tests/node_compat/test/internet/test-dns-promises-resolve.js b/cli/tests/node_compat/test/internet/test-dns-promises-resolve.js index b1595ec43..e4ee5f782 100644 --- a/cli/tests/node_compat/test/internet/test-dns-promises-resolve.js +++ b/cli/tests/node_compat/test/internet/test-dns-promises-resolve.js @@ -19,8 +19,8 @@ const dnsPromises = require('dns').promises; { code: 'ERR_INVALID_ARG_VALUE', name: 'TypeError', - message: `The argument 'rrtype' is invalid. Received '${rrtype}'` - } + message: `The argument 'rrtype' is invalid. Received '${rrtype}'`, + }, ); } @@ -33,8 +33,8 @@ const dnsPromises = require('dns').promises; code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', message: 'The "rrtype" argument must be of type string. ' + - `Received type ${typeof rrtype} (${rrtype})` - } + `Received type ${typeof rrtype} (${rrtype})`, + }, ); } diff --git a/cli/tests/node_compat/test/parallel/test-buffer-copy.js b/cli/tests/node_compat/test/parallel/test-buffer-copy.js index ba1865441..2e7a012aa 100644 --- a/cli/tests/node_compat/test/parallel/test-buffer-copy.js +++ b/cli/tests/node_compat/test/parallel/test-buffer-copy.js @@ -162,11 +162,20 @@ assert.throws( { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: 'The value of "sourceStart" is out of range. ' + - 'It must be >= 0. Received -1' } ); +/* +// Copy throws if sourceStart is greater than length of source +assert.throws( + () => Buffer.allocUnsafe(5).copy(Buffer.allocUnsafe(5), 0, 100), + { + code: 'ERR_OUT_OF_RANGE', + name: 'RangeError', + } +); +*/ + { // Check sourceEnd resets to targetEnd if former is greater than the latter b.fill(++cntr); diff --git a/cli/tests/node_compat/test/parallel/test-child-process-exec-cwd.js b/cli/tests/node_compat/test/parallel/test-child-process-exec-cwd.js index 97da31fc9..4bd394cca 100644 --- a/cli/tests/node_compat/test/parallel/test-child-process-exec-cwd.js +++ b/cli/tests/node_compat/test/parallel/test-child-process-exec-cwd.js @@ -42,5 +42,5 @@ if (common.isWindows) { } exec(pwdcommand, { cwd: dir }, common.mustSucceed((stdout, stderr) => { - assert(stdout.startsWith(dir)); + assert(stdout.toLowerCase().startsWith(dir)); })); diff --git a/cli/tests/node_compat/test/parallel/test-event-emitter-errors.js b/cli/tests/node_compat/test/parallel/test-event-emitter-errors.js index 6bf0e9162..39a896b05 100644 --- a/cli/tests/node_compat/test/parallel/test-event-emitter-errors.js +++ b/cli/tests/node_compat/test/parallel/test-event-emitter-errors.js @@ -18,7 +18,7 @@ assert.throws( { code: 'ERR_UNHANDLED_ERROR', name: 'Error', - message: "Unhandled error. ('Accepts a string')" + message: "Unhandled error. ('Accepts a string')", } ); @@ -27,18 +27,18 @@ assert.throws( { code: 'ERR_UNHANDLED_ERROR', name: 'Error', - message: "Unhandled error. ({ message: 'Error!' })" + message: "Unhandled error. ({ message: 'Error!' })", } ); assert.throws( () => EE.emit('error', { message: 'Error!', - [util.inspect.custom]() { throw new Error(); } + [util.inspect.custom]() { throw new Error(); }, }), { code: 'ERR_UNHANDLED_ERROR', name: 'Error', - message: 'Unhandled error. ([object Object])' + message: 'Unhandled error. ([object Object])', } ); diff --git a/cli/tests/node_compat/test/parallel/test-event-emitter-invalid-listener.js b/cli/tests/node_compat/test/parallel/test-event-emitter-invalid-listener.js index 10e7f0b1c..604110a5e 100644 --- a/cli/tests/node_compat/test/parallel/test-event-emitter-invalid-listener.js +++ b/cli/tests/node_compat/test/parallel/test-event-emitter-invalid-listener.js @@ -22,6 +22,6 @@ for (const method of eventsMethods) { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', message: 'The "listener" argument must be of type function. ' + - 'Received null' + 'Received null', }, `event.${method}('foo', null) should throw the proper error`); } diff --git a/cli/tests/node_compat/test/parallel/test-events-on-async-iterator.js b/cli/tests/node_compat/test/parallel/test-events-on-async-iterator.js index 83d84ab3a..87efeb842 100644 --- a/cli/tests/node_compat/test/parallel/test-events-on-async-iterator.js +++ b/cli/tests/node_compat/test/parallel/test-events-on-async-iterator.js @@ -12,7 +12,7 @@ const common = require('../common'); const assert = require('assert'); const { on, EventEmitter } = require('events'); const { - NodeEventTarget + NodeEventTarget, } = require('internal/event_target'); async function basic() { @@ -138,18 +138,18 @@ async function next() { assert.deepStrictEqual(results, [{ value: ['bar'], - done: false + done: false, }, { value: [42], - done: false + done: false, }, { value: undefined, - done: true + done: true, }]); assert.deepStrictEqual(await iterable.next(), { value: undefined, - done: true + done: true, }); } @@ -167,19 +167,19 @@ async function nextError() { ]); assert.deepStrictEqual(results, [{ status: 'rejected', - reason: _err + reason: _err, }, { status: 'fulfilled', value: { value: undefined, - done: true - } + done: true, + }, }, { status: 'fulfilled', value: { value: undefined, - done: true - } + done: true, + }, }]); assert.strictEqual(ee.listeners('error').length, 0); } @@ -203,7 +203,7 @@ async function iterableThrow() { }, { message: 'The "EventEmitter.AsyncIterator" property must be' + ' an instance of Error. Received undefined', - name: 'TypeError' + name: 'TypeError', }); const expected = [['bar'], [42]]; @@ -265,11 +265,11 @@ async function abortableOnBefore() { const abortedSignal = AbortSignal.abort(); [1, {}, null, false, 'hi'].forEach((signal) => { assert.throws(() => on(ee, 'foo', { signal }), { - code: 'ERR_INVALID_ARG_TYPE' + code: 'ERR_INVALID_ARG_TYPE', }); }); assert.throws(() => on(ee, 'foo', { signal: abortedSignal }), { - name: 'AbortError' + name: 'AbortError', }); } @@ -278,11 +278,11 @@ async function eventTargetAbortableOnBefore() { const abortedSignal = AbortSignal.abort(); [1, {}, null, false, 'hi'].forEach((signal) => { assert.throws(() => on(et, 'foo', { signal }), { - code: 'ERR_INVALID_ARG_TYPE' + code: 'ERR_INVALID_ARG_TYPE', }); }); assert.throws(() => on(et, 'foo', { signal: abortedSignal }), { - name: 'AbortError' + name: 'AbortError', }); } diff --git a/cli/tests/node_compat/test/parallel/test-fs-access.js b/cli/tests/node_compat/test/parallel/test-fs-access.js index 1b3804112..2351d4171 100644 --- a/cli/tests/node_compat/test/parallel/test-fs-access.js +++ b/cli/tests/node_compat/test/parallel/test-fs-access.js @@ -177,14 +177,12 @@ fs.accessSync(readWriteFile, mode); () => fs.access(readWriteFile, mode, common.mustNotCall()), { code: 'ERR_INVALID_ARG_TYPE', - message: /"mode" argument.+integer/ } ); assert.throws( () => fs.accessSync(readWriteFile, mode), { code: 'ERR_INVALID_ARG_TYPE', - message: /"mode" argument.+integer/ } ); }); @@ -201,14 +199,12 @@ fs.accessSync(readWriteFile, mode); () => fs.access(readWriteFile, mode, common.mustNotCall()), { code: 'ERR_OUT_OF_RANGE', - message: /"mode".+It must be an integer >= 0 && <= 7/ } ); assert.throws( () => fs.accessSync(readWriteFile, mode), { code: 'ERR_OUT_OF_RANGE', - message: /"mode".+It must be an integer >= 0 && <= 7/ } ); }); diff --git a/cli/tests/node_compat/test/parallel/test-fs-copyfile.js b/cli/tests/node_compat/test/parallel/test-fs-copyfile.js index 6dbbcc1f3..085fc19bf 100644 --- a/cli/tests/node_compat/test/parallel/test-fs-copyfile.js +++ b/cli/tests/node_compat/test/parallel/test-fs-copyfile.js @@ -163,8 +163,6 @@ assert.throws(() => { }, { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: 'The value of "mode" is out of range. It must be an integer ' + - '>= 0 && <= 7. Received 8' }); assert.throws(() => { diff --git a/cli/tests/node_compat/test/parallel/test-fs-watchfile.js b/cli/tests/node_compat/test/parallel/test-fs-watchfile.js index 4acad4b94..3a77fb56d 100644 --- a/cli/tests/node_compat/test/parallel/test-fs-watchfile.js +++ b/cli/tests/node_compat/test/parallel/test-fs-watchfile.js @@ -87,7 +87,7 @@ const watcher = // 'stop' should only be emitted once - stopping a stopped watcher should // not trigger a 'stop' event. -watcher.on('stop', common.mustCall(function onStop() {})); +watcher.on('stop', common.mustCall()); // Watch events should callback with a filename on supported systems. // Omitting AIX. It works but not reliably. diff --git a/cli/tests/node_compat/test/parallel/test-net-options-lookup.js b/cli/tests/node_compat/test/parallel/test-net-options-lookup.js index af424fd3d..d3ca0451c 100644 --- a/cli/tests/node_compat/test/parallel/test-net-options-lookup.js +++ b/cli/tests/node_compat/test/parallel/test-net-options-lookup.js @@ -43,7 +43,11 @@ function connectDoesNotThrow(input) { { // Verify that an error is emitted when an invalid address family is returned. const s = connectDoesNotThrow((host, options, cb) => { - cb(null, '127.0.0.1', 100); + if (options.all) { + cb(null, [{ address: '127.0.0.1', family: 100 }]); + } else { + cb(null, '127.0.0.1', 100); + } }); s.on('error', common.expectsError({ diff --git a/cli/tests/node_compat/test/parallel/test-stream-duplex-from.js b/cli/tests/node_compat/test/parallel/test-stream-duplex-from.js index 5e8818302..c6ab18179 100644 --- a/cli/tests/node_compat/test/parallel/test-stream-duplex-from.js +++ b/cli/tests/node_compat/test/parallel/test-stream-duplex-from.js @@ -9,7 +9,8 @@ const common = require('../common'); const assert = require('assert'); -const { Duplex, Readable, Writable, pipeline } = require('stream'); +const { Duplex, Readable, Writable, pipeline, PassThrough } = require('stream'); +const { ReadableStream, WritableStream } = require('stream/web'); const { Blob } = require('buffer'); { @@ -149,7 +150,7 @@ const { Blob } = require('buffer'); } assert.strictEqual(ret, 'abcdefghi'); }, - common.mustCall(() => {}), + common.mustSucceed(), ); } @@ -285,3 +286,131 @@ const { Blob } = require('buffer'); duplex.write('test'); } + +/* +TODO(kt3k): Enable this test case +{ + const through = new PassThrough({ objectMode: true }); + + let res = ''; + const d = Readable.from(['foo', 'bar'], { objectMode: true }) + .pipe(Duplex.from({ + writable: through, + readable: through + })); + + d.on('data', (data) => { + d.pause(); + setImmediate(() => { + d.resume(); + }); + res += data; + }).on('end', common.mustCall(() => { + assert.strictEqual(res, 'foobar'); + })).on('close', common.mustCall()); +} +*/ + +function makeATestReadableStream(value) { + return new ReadableStream({ + start(controller) { + controller.enqueue(value); + controller.close(); + } + }); +} + +function makeATestWritableStream(writeFunc) { + return new WritableStream({ + write(chunk) { + writeFunc(chunk); + } + }); +} + +{ + const d = Duplex.from({ + readable: makeATestReadableStream('foo'), + }); + assert.strictEqual(d.readable, true); + assert.strictEqual(d.writable, false); + + d.on('data', common.mustCall((data) => { + assert.strictEqual(data.toString(), 'foo'); + })); + + d.on('end', common.mustCall(() => { + assert.strictEqual(d.readable, false); + })); +} + +{ + const d = Duplex.from(makeATestReadableStream('foo')); + + assert.strictEqual(d.readable, true); + assert.strictEqual(d.writable, false); + + d.on('data', common.mustCall((data) => { + assert.strictEqual(data.toString(), 'foo'); + })); + + d.on('end', common.mustCall(() => { + assert.strictEqual(d.readable, false); + })); +} + +/* +TODO(kt3k): Enable this test case +{ + let ret = ''; + const d = Duplex.from({ + writable: makeATestWritableStream((chunk) => ret += chunk), + }); + + assert.strictEqual(d.readable, false); + assert.strictEqual(d.writable, true); + + d.end('foo'); + d.on('finish', common.mustCall(() => { + assert.strictEqual(ret, 'foo'); + assert.strictEqual(d.writable, false); + })); +} + +{ + let ret = ''; + const d = Duplex.from(makeATestWritableStream((chunk) => ret += chunk)); + + assert.strictEqual(d.readable, false); + assert.strictEqual(d.writable, true); + + d.end('foo'); + d.on('finish', common.mustCall(() => { + assert.strictEqual(ret, 'foo'); + assert.strictEqual(d.writable, false); + })); +} + +{ + let ret = ''; + const d = Duplex.from({ + readable: makeATestReadableStream('foo'), + writable: makeATestWritableStream((chunk) => ret += chunk), + }); + + d.end('bar'); + + d.on('data', common.mustCall((data) => { + assert.strictEqual(data.toString(), 'foo'); + })); + + d.on('end', common.mustCall(() => { + assert.strictEqual(d.readable, false); + })); + + d.on('finish', common.mustCall(() => { + assert.strictEqual(ret, 'bar'); + assert.strictEqual(d.writable, false); + })); +} +*/ diff --git a/cli/tests/node_compat/test/parallel/test-stream-pipeline-queued-end-in-destroy.js b/cli/tests/node_compat/test/parallel/test-stream-pipeline-queued-end-in-destroy.js index 9232397f2..e785a0008 100644 --- a/cli/tests/node_compat/test/parallel/test-stream-pipeline-queued-end-in-destroy.js +++ b/cli/tests/node_compat/test/parallel/test-stream-pipeline-queued-end-in-destroy.js @@ -16,7 +16,7 @@ const { Readable, Duplex, pipeline } = require('stream'); // Refs: https://github.com/nodejs/node/issues/24456 const readable = new Readable({ - read: common.mustCall(() => {}) + read: common.mustCall() }); const duplex = new Duplex({ diff --git a/cli/tests/node_compat/test/parallel/test-stream-pipeline-with-empty-string.js b/cli/tests/node_compat/test/parallel/test-stream-pipeline-with-empty-string.js index 9ea205e72..a03fe17dd 100644 --- a/cli/tests/node_compat/test/parallel/test-stream-pipeline-with-empty-string.js +++ b/cli/tests/node_compat/test/parallel/test-stream-pipeline-with-empty-string.js @@ -18,8 +18,8 @@ async function runTest() { await pipeline( '', new PassThrough({ objectMode: true }), - common.mustCall(() => { }) + common.mustCall(), ); } -runTest().then(common.mustCall(() => {})); +runTest().then(common.mustCall()); diff --git a/cli/tests/node_compat/test/parallel/test-stream-readable-destroy.js b/cli/tests/node_compat/test/parallel/test-stream-readable-destroy.js index 10d09dc64..0a780c98e 100644 --- a/cli/tests/node_compat/test/parallel/test-stream-readable-destroy.js +++ b/cli/tests/node_compat/test/parallel/test-stream-readable-destroy.js @@ -256,7 +256,7 @@ const assert = require('assert'); { const read = new Readable({ - read: common.mustNotCall(function() {}) + read: common.mustNotCall() }); read.destroy(); assert.strictEqual(read.destroyed, true); diff --git a/cli/tests/node_compat/test/parallel/test-stream-readable-next-no-null.js b/cli/tests/node_compat/test/parallel/test-stream-readable-next-no-null.js index e4dade0e9..06f06f41d 100644 --- a/cli/tests/node_compat/test/parallel/test-stream-readable-next-no-null.js +++ b/cli/tests/node_compat/test/parallel/test-stream-readable-next-no-null.js @@ -21,6 +21,6 @@ stream.on('error', expectsError({ message: 'May not write null values to stream' })); -stream.on('data', mustNotCall((chunk) => {})); +stream.on('data', mustNotCall()); stream.on('end', mustNotCall()); diff --git a/cli/tests/node_compat/test/parallel/test-stream-readable-unshift.js b/cli/tests/node_compat/test/parallel/test-stream-readable-unshift.js index d73fb25b1..1303befa9 100644 --- a/cli/tests/node_compat/test/parallel/test-stream-readable-unshift.js +++ b/cli/tests/node_compat/test/parallel/test-stream-readable-unshift.js @@ -172,6 +172,6 @@ const { Readable } = require('stream'); const stream = new ArrayReader(); stream.once('readable', common.mustCall(onRead)); - stream.on('end', common.mustCall(() => {})); + stream.on('end', common.mustCall()); } diff --git a/cli/tests/node_compat/test/parallel/test-stream2-transform.js b/cli/tests/node_compat/test/parallel/test-stream2-transform.js index c88a10d61..2bd376b1f 100644 --- a/cli/tests/node_compat/test/parallel/test-stream2-transform.js +++ b/cli/tests/node_compat/test/parallel/test-stream2-transform.js @@ -475,3 +475,27 @@ const { PassThrough, Transform } = require('stream'); assert.strictEqual(ended, true); })); } + +{ + const s = new Transform({ + objectMode: true, + construct(callback) { + this.push('header from constructor'); + callback(); + }, + transform: (row, encoding, callback) => { + callback(null, row); + }, + }); + + const expected = [ + 'header from constructor', + 'firstLine', + 'secondLine', + ]; + s.on('data', common.mustCall((data) => { + assert.strictEqual(data.toString(), expected.shift()); + }, 3)); + s.write('firstLine'); + process.nextTick(() => s.write('secondLine')); +} diff --git a/cli/tests/node_compat/test/pseudo-tty/console_colors.js b/cli/tests/node_compat/test/pseudo-tty/console_colors.js index 766ba064a..2be464457 100644 --- a/cli/tests/node_compat/test/pseudo-tty/console_colors.js +++ b/cli/tests/node_compat/test/pseudo-tty/console_colors.js @@ -17,7 +17,7 @@ console.log('%s q', 'string'); console.log('%o with object format param', { foo: 'bar' }); console.log( - new Error('test\n at abc (../fixtures/node_modules/bar.js:4:4)\nfoobar') + new Error('test\n at abc (../fixtures/node_modules/bar.js:4:4)\nfoobar'), ); try { |