summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMasashi Hirano <cherrydog07@gmail.com>2018-06-14 01:56:42 +0900
committerJames M Snell <jasnell@gmail.com>2018-06-22 13:25:48 -0700
commit383b1b6d3c5f753798d33ab6758ce8d5313f67e8 (patch)
tree36abb37e1798614e1f611799cfbfd460cc540b76 /test
parent7edd0a17af8d74dce7dd6c7554a8b8523f83efdc (diff)
downloadandroid-node-v8-383b1b6d3c5f753798d33ab6758ce8d5313f67e8.tar.gz
android-node-v8-383b1b6d3c5f753798d33ab6758ce8d5313f67e8.tar.bz2
android-node-v8-383b1b6d3c5f753798d33ab6758ce8d5313f67e8.zip
test: add tests for end event of stream.Duplex
Added tests to check the stream will automatically end the writable side when readable side ends when allowHalfOpen option is false. PR-URL: https://github.com/nodejs/node/pull/21325 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-stream-duplex-end.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/parallel/test-stream-duplex-end.js b/test/parallel/test-stream-duplex-end.js
new file mode 100644
index 0000000000..8ee19346d3
--- /dev/null
+++ b/test/parallel/test-stream-duplex-end.js
@@ -0,0 +1,41 @@
+'use strict';
+
+const common = require('../common');
+const assert = require('assert');
+const Duplex = require('stream').Duplex;
+
+{
+ const stream = new Duplex({
+ read() {}
+ });
+ assert.strictEqual(stream.allowHalfOpen, true);
+ stream.on('finish', common.mustNotCall());
+ assert.strictEqual(stream.listenerCount('end'), 0);
+ stream.resume();
+ stream.push(null);
+}
+
+{
+ const stream = new Duplex({
+ read() {},
+ allowHalfOpen: false
+ });
+ assert.strictEqual(stream.allowHalfOpen, false);
+ stream.on('finish', common.mustCall());
+ assert.strictEqual(stream.listenerCount('end'), 1);
+ stream.resume();
+ stream.push(null);
+}
+
+{
+ const stream = new Duplex({
+ read() {},
+ allowHalfOpen: false
+ });
+ assert.strictEqual(stream.allowHalfOpen, false);
+ stream._writableState.ended = true;
+ stream.on('finish', common.mustNotCall());
+ assert.strictEqual(stream.listenerCount('end'), 1);
+ stream.resume();
+ stream.push(null);
+}