diff options
author | Robert Nagy <ronagy@icloud.com> | 2019-07-23 09:40:13 +0200 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-08-19 22:03:07 -0700 |
commit | 317fa3a7574e90e83bbd09acc9b9ab61defccf3d (patch) | |
tree | 004ed9b4ee24fb72e59c05ed560a3ea7731a4ac8 /test | |
parent | 0d7acfac82a20fceb7aa91c61abc18b711edba28 (diff) | |
download | android-node-v8-317fa3a7574e90e83bbd09acc9b9ab61defccf3d.tar.gz android-node-v8-317fa3a7574e90e83bbd09acc9b9ab61defccf3d.tar.bz2 android-node-v8-317fa3a7574e90e83bbd09acc9b9ab61defccf3d.zip |
stream: add readableEnded
Adds a readableEnded property and improved finished compat with possible
stream-like objects.
PR-URL: https://github.com/nodejs/node/pull/28814
Refs: https://github.com/nodejs/node/issues/28813
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-stream-finished.js | 9 | ||||
-rw-r--r-- | test/parallel/test-stream-readable-ended.js | 33 |
2 files changed, 42 insertions, 0 deletions
diff --git a/test/parallel/test-stream-finished.js b/test/parallel/test-stream-finished.js index 329b4ed42b..d6361ea303 100644 --- a/test/parallel/test-stream-finished.js +++ b/test/parallel/test-stream-finished.js @@ -3,6 +3,7 @@ const common = require('../common'); const { Writable, Readable, Transform, finished } = require('stream'); const assert = require('assert'); +const EE = require('events'); const fs = require('fs'); const { promisify } = require('util'); @@ -175,3 +176,11 @@ const { promisify } = require('util'); rs.push(null); rs.resume(); } + +{ + const streamLike = new EE(); + streamLike.readableEnded = true; + streamLike.readable = true; + finished(streamLike, common.mustCall); + streamLike.emit('close'); +} diff --git a/test/parallel/test-stream-readable-ended.js b/test/parallel/test-stream-readable-ended.js new file mode 100644 index 0000000000..a224c68f04 --- /dev/null +++ b/test/parallel/test-stream-readable-ended.js @@ -0,0 +1,33 @@ +'use strict'; + +const common = require('../common'); +const { Readable } = require('stream'); +const assert = require('assert'); + +// basic +{ + // Find it on Readable.prototype + assert(Readable.prototype.hasOwnProperty('readableEnded')); +} + +// event +{ + const readable = new Readable(); + + readable._read = () => { + // The state ended should start in false. + assert.strictEqual(readable.readableEnded, false); + readable.push('asd'); + assert.strictEqual(readable.readableEnded, false); + readable.push(null); + assert.strictEqual(readable.readableEnded, false); + }; + + readable.on('end', common.mustCall(() => { + assert.strictEqual(readable.readableEnded, true); + })); + + readable.on('data', common.mustCall(() => { + assert.strictEqual(readable.readableEnded, false); + })); +} |