node/test/parallel/test-stream2-readable-wrap-error.js
Luigi Pinca c739f371c3 test: do not use the same EventEmitter instance
Prevent multiple listeners for the `'error'` event to be added to the
same `EventEmitter` instance.

PR-URL: https://github.com/nodejs/node/pull/35560
Refs: https://github.com/nodejs/node/pull/35557#issuecomment-705476640
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2020-10-12 19:07:15 +02:00

38 lines
1015 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const Readable = require('_stream_readable');
const EE = require('events').EventEmitter;
class LegacyStream extends EE {
pause() {}
resume() {}
}
{
const err = new Error();
const oldStream = new LegacyStream();
const r = new Readable({ autoDestroy: true })
.wrap(oldStream)
.on('error', common.mustCall(() => {
assert.strictEqual(r._readableState.errorEmitted, true);
assert.strictEqual(r._readableState.errored, err);
assert.strictEqual(r.destroyed, true);
}));
oldStream.emit('error', err);
}
{
const err = new Error();
const oldStream = new LegacyStream();
const r = new Readable({ autoDestroy: false })
.wrap(oldStream)
.on('error', common.mustCall(() => {
assert.strictEqual(r._readableState.errorEmitted, true);
assert.strictEqual(r._readableState.errored, err);
assert.strictEqual(r.destroyed, false);
}));
oldStream.emit('error', err);
}