deno.land / std@0.166.0 / node / _tools / test / parallel / test-stream-writable-write-writev-finish.js
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160// deno-fmt-ignore-file// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.// Taken from Node 18.12.0// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
'use strict';
const common = require('../common');const assert = require('assert');const stream = require('stream');
// Ensure consistency between the finish event when using cork()// and writev and when not using them
{ const writable = new stream.Writable();
writable._write = (chunks, encoding, cb) => { cb(new Error('write test error')); };
writable.on('finish', common.mustNotCall()); writable.on('prefinish', common.mustNotCall()); writable.on('error', common.mustCall((er) => { assert.strictEqual(er.message, 'write test error'); }));
writable.end('test');}
{ const writable = new stream.Writable();
writable._write = (chunks, encoding, cb) => { setImmediate(cb, new Error('write test error')); };
writable.on('finish', common.mustNotCall()); writable.on('prefinish', common.mustNotCall()); writable.on('error', common.mustCall((er) => { assert.strictEqual(er.message, 'write test error'); }));
writable.end('test');}
{ const writable = new stream.Writable();
writable._write = (chunks, encoding, cb) => { cb(new Error('write test error')); };
writable._writev = (chunks, cb) => { cb(new Error('writev test error')); };
writable.on('finish', common.mustNotCall()); writable.on('prefinish', common.mustNotCall()); writable.on('error', common.mustCall((er) => { assert.strictEqual(er.message, 'writev test error'); }));
writable.cork(); writable.write('test');
setImmediate(function() { writable.end('test'); });}
{ const writable = new stream.Writable();
writable._write = (chunks, encoding, cb) => { setImmediate(cb, new Error('write test error')); };
writable._writev = (chunks, cb) => { setImmediate(cb, new Error('writev test error')); };
writable.on('finish', common.mustNotCall()); writable.on('prefinish', common.mustNotCall()); writable.on('error', common.mustCall((er) => { assert.strictEqual(er.message, 'writev test error'); }));
writable.cork(); writable.write('test');
setImmediate(function() { writable.end('test'); });}
// Regression test for// https://github.com/nodejs/node/issues/13812
{ const rs = new stream.Readable(); rs.push('ok'); rs.push(null); rs._read = () => {};
const ws = new stream.Writable();
ws.on('finish', common.mustNotCall()); ws.on('error', common.mustCall());
ws._write = (chunk, encoding, done) => { setImmediate(done, new Error()); }; rs.pipe(ws);}
{ const rs = new stream.Readable(); rs.push('ok'); rs.push(null); rs._read = () => {};
const ws = new stream.Writable();
ws.on('finish', common.mustNotCall()); ws.on('error', common.mustCall());
ws._write = (chunk, encoding, done) => { done(new Error()); }; rs.pipe(ws);}
{ const w = new stream.Writable(); w._write = (chunk, encoding, cb) => { process.nextTick(cb); }; w.on('error', common.mustCall()); w.on('finish', common.mustNotCall()); w.on('prefinish', () => { w.write("shouldn't write in prefinish listener"); }); w.end();}
{ const w = new stream.Writable(); w._write = (chunk, encoding, cb) => { process.nextTick(cb); }; w.on('error', common.mustCall()); w.on('finish', () => { w.write("shouldn't write in finish listener"); }); w.end();}
Version Info