mirror of
https://github.com/nodejs/node.git
synced 2025-04-29 06:19:07 +00:00

Previously due to compat reasons 'close' was only emitted if no 'error'. This removes the compat behavior in order to properly follow expected streams behavior. PR-URL: https://github.com/nodejs/node/pull/31408 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Rich Trott <rtrott@gmail.com>
44 lines
955 B
JavaScript
44 lines
955 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const fs = require('fs');
|
|
|
|
const tmpdir = require('../common/tmpdir');
|
|
tmpdir.refresh();
|
|
|
|
{
|
|
const stream = fs.createReadStream(__filename);
|
|
stream.on('close', common.mustCall());
|
|
test(stream);
|
|
}
|
|
|
|
{
|
|
const stream = fs.createWriteStream(`${tmpdir.path}/dummy`);
|
|
stream.on('close', common.mustCall());
|
|
test(stream);
|
|
}
|
|
|
|
{
|
|
const stream = fs.createReadStream(__filename, { emitClose: true });
|
|
stream.on('close', common.mustCall());
|
|
test(stream);
|
|
}
|
|
|
|
{
|
|
const stream = fs.createWriteStream(`${tmpdir.path}/dummy2`,
|
|
{ emitClose: true });
|
|
stream.on('close', common.mustCall());
|
|
test(stream);
|
|
}
|
|
|
|
|
|
function test(stream) {
|
|
const err = new Error('DESTROYED');
|
|
stream.on('open', function() {
|
|
stream.destroy(err);
|
|
});
|
|
stream.on('error', common.mustCall(function(err_) {
|
|
assert.strictEqual(err_, err);
|
|
}));
|
|
}
|