From b71a85918815195a2a8ba070fb534e50938251bd Mon Sep 17 00:00:00 2001 From: Satya Rohith Date: Tue, 25 Jun 2024 15:06:40 +0530 Subject: test(node_compat): enable more stream-writable tests (#24328) --- .../test/parallel/test-stream-writable-aborted.js | 33 ++++++++++++++++++++++ .../parallel/test-stream-writable-final-async.js | 32 +++++++++++++++++++++ .../parallel/test-stream-writable-final-destroy.js | 28 ++++++++++++++++++ .../parallel/test-stream-writable-final-throw.js | 30 ++++++++++++++++++++ 4 files changed, 123 insertions(+) create mode 100644 tests/node_compat/test/parallel/test-stream-writable-aborted.js create mode 100644 tests/node_compat/test/parallel/test-stream-writable-final-async.js create mode 100644 tests/node_compat/test/parallel/test-stream-writable-final-destroy.js create mode 100644 tests/node_compat/test/parallel/test-stream-writable-final-throw.js (limited to 'tests/node_compat/test') diff --git a/tests/node_compat/test/parallel/test-stream-writable-aborted.js b/tests/node_compat/test/parallel/test-stream-writable-aborted.js new file mode 100644 index 000000000..89dbcc4ee --- /dev/null +++ b/tests/node_compat/test/parallel/test-stream-writable-aborted.js @@ -0,0 +1,33 @@ +// 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 `tests/node_compat/runner/setup.ts`. Do not modify this file manually. + +'use strict'; + +require('../common'); +const assert = require('assert'); +const { Writable } = require('stream'); + +{ + const writable = new Writable({ + write() { + } + }); + assert.strictEqual(writable.writableAborted, false); + writable.destroy(); + assert.strictEqual(writable.writableAborted, true); +} + +{ + const writable = new Writable({ + write() { + } + }); + assert.strictEqual(writable.writableAborted, false); + writable.end(); + writable.destroy(); + assert.strictEqual(writable.writableAborted, true); +} diff --git a/tests/node_compat/test/parallel/test-stream-writable-final-async.js b/tests/node_compat/test/parallel/test-stream-writable-final-async.js new file mode 100644 index 000000000..c8fe2057b --- /dev/null +++ b/tests/node_compat/test/parallel/test-stream-writable-final-async.js @@ -0,0 +1,32 @@ +// 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 `tests/node_compat/runner/setup.ts`. Do not modify this file manually. + +'use strict'; + +const common = require('../common'); +const { + Duplex, +} = require('stream'); +const { setTimeout } = require('timers/promises'); + +{ + class Foo extends Duplex { + async _final(callback) { + await setTimeout(common.platformTimeout(1)); + callback(); + } + + _read() {} + } + + const foo = new Foo(); + foo._write = common.mustCall((chunk, encoding, cb) => { + cb(); + }); + foo.end('test', common.mustCall()); + foo.on('error', common.mustNotCall()); +} diff --git a/tests/node_compat/test/parallel/test-stream-writable-final-destroy.js b/tests/node_compat/test/parallel/test-stream-writable-final-destroy.js new file mode 100644 index 000000000..958a36bfd --- /dev/null +++ b/tests/node_compat/test/parallel/test-stream-writable-final-destroy.js @@ -0,0 +1,28 @@ +// 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 `tests/node_compat/runner/setup.ts`. Do not modify this file manually. + +'use strict'; +const common = require('../common'); + +const { Writable } = require('stream'); + +{ + const w = new Writable({ + write(chunk, encoding, callback) { + callback(null); + }, + final(callback) { + queueMicrotask(callback); + } + }); + w.end(); + w.destroy(); + + w.on('prefinish', common.mustNotCall()); + w.on('finish', common.mustNotCall()); + w.on('close', common.mustCall()); +} diff --git a/tests/node_compat/test/parallel/test-stream-writable-final-throw.js b/tests/node_compat/test/parallel/test-stream-writable-final-throw.js new file mode 100644 index 000000000..ba7f87b23 --- /dev/null +++ b/tests/node_compat/test/parallel/test-stream-writable-final-throw.js @@ -0,0 +1,30 @@ +// 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 `tests/node_compat/runner/setup.ts`. Do not modify this file manually. + +'use strict'; + +const common = require('../common'); +const { + Duplex, +} = require('stream'); + +{ + class Foo extends Duplex { + _final(callback) { + throw new Error('fhqwhgads'); + } + + _read() {} + } + + const foo = new Foo(); + foo._write = common.mustCall((chunk, encoding, cb) => { + cb(); + }); + foo.end('test', common.expectsError({ message: 'fhqwhgads' })); + foo.on('error', common.mustCall()); +} -- cgit v1.2.3