node/test/parallel/test-stream-pipe-unpipe-streams.js
Raja Panidepu acb44d09f4 test: updated test-stream-pipe-unpipe-stream
test readableStream.unpipe(dest) is no operation when dest is
not a destination for readable stream.

PR-URL: https://github.com/nodejs/node/pull/10100
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2016-12-05 13:20:01 +01:00

34 lines
931 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const { Readable, Writable } = require('stream');
const source = Readable({read: () => {}});
const dest1 = Writable({write: () => {}});
const dest2 = Writable({write: () => {}});
source.pipe(dest1);
source.pipe(dest2);
dest1.on('unpipe', common.mustCall(() => {}));
dest2.on('unpipe', common.mustCall(() => {}));
assert.strictEqual(source._readableState.pipes[0], dest1);
assert.strictEqual(source._readableState.pipes[1], dest2);
assert.strictEqual(source._readableState.pipes.length, 2);
// Should be able to unpipe them in the reverse order that they were piped.
source.unpipe(dest2);
assert.strictEqual(source._readableState.pipes, dest1);
assert.notStrictEqual(source._readableState.pipes, dest2);
dest2.on('unpipe', common.fail);
source.unpipe(dest2);
source.unpipe(dest1);
assert.strictEqual(source._readableState.pipes, null);