summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRobert Nagy <ronagy@icloud.com>2019-07-23 09:40:13 +0200
committerRich Trott <rtrott@gmail.com>2019-08-19 22:03:07 -0700
commit317fa3a7574e90e83bbd09acc9b9ab61defccf3d (patch)
tree004ed9b4ee24fb72e59c05ed560a3ea7731a4ac8 /test
parent0d7acfac82a20fceb7aa91c61abc18b711edba28 (diff)
downloadandroid-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.js9
-rw-r--r--test/parallel/test-stream-readable-ended.js33
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);
+ }));
+}