summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-stream-readable-emit-readable-short-stream.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/node_compat/test/parallel/test-stream-readable-emit-readable-short-stream.js')
-rw-r--r--tests/node_compat/test/parallel/test-stream-readable-emit-readable-short-stream.js153
1 files changed, 153 insertions, 0 deletions
diff --git a/tests/node_compat/test/parallel/test-stream-readable-emit-readable-short-stream.js b/tests/node_compat/test/parallel/test-stream-readable-emit-readable-short-stream.js
new file mode 100644
index 000000000..fac562092
--- /dev/null
+++ b/tests/node_compat/test/parallel/test-stream-readable-emit-readable-short-stream.js
@@ -0,0 +1,153 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+'use strict';
+
+const common = require('../common');
+const stream = require('stream');
+const assert = require('assert');
+
+{
+ const r = new stream.Readable({
+ read: common.mustCall(function() {
+ this.push('content');
+ this.push(null);
+ })
+ });
+
+ const t = new stream.Transform({
+ transform: common.mustCall(function(chunk, encoding, callback) {
+ this.push(chunk);
+ return callback();
+ }),
+ flush: common.mustCall(function(callback) {
+ return callback();
+ })
+ });
+
+ r.pipe(t);
+ t.on('readable', common.mustCall(function() {
+ while (true) {
+ const chunk = t.read();
+ if (!chunk)
+ break;
+
+ assert.strictEqual(chunk.toString(), 'content');
+ }
+ }, 2));
+}
+
+{
+ const t = new stream.Transform({
+ transform: common.mustCall(function(chunk, encoding, callback) {
+ this.push(chunk);
+ return callback();
+ }),
+ flush: common.mustCall(function(callback) {
+ return callback();
+ })
+ });
+
+ t.end('content');
+
+ t.on('readable', common.mustCall(function() {
+ while (true) {
+ const chunk = t.read();
+ if (!chunk)
+ break;
+ assert.strictEqual(chunk.toString(), 'content');
+ }
+ }));
+}
+
+{
+ const t = new stream.Transform({
+ transform: common.mustCall(function(chunk, encoding, callback) {
+ this.push(chunk);
+ return callback();
+ }),
+ flush: common.mustCall(function(callback) {
+ return callback();
+ })
+ });
+
+ t.write('content');
+ t.end();
+
+ t.on('readable', common.mustCall(function() {
+ while (true) {
+ const chunk = t.read();
+ if (!chunk)
+ break;
+ assert.strictEqual(chunk.toString(), 'content');
+ }
+ }));
+}
+
+{
+ const t = new stream.Readable({
+ read() {
+ }
+ });
+
+ t.on('readable', common.mustCall(function() {
+ while (true) {
+ const chunk = t.read();
+ if (!chunk)
+ break;
+ assert.strictEqual(chunk.toString(), 'content');
+ }
+ }));
+
+ t.push('content');
+ t.push(null);
+}
+
+{
+ const t = new stream.Readable({
+ read() {
+ }
+ });
+
+ t.on('readable', common.mustCall(function() {
+ while (true) {
+ const chunk = t.read();
+ if (!chunk)
+ break;
+ assert.strictEqual(chunk.toString(), 'content');
+ }
+ }, 2));
+
+ process.nextTick(() => {
+ t.push('content');
+ t.push(null);
+ });
+}
+
+{
+ const t = new stream.Transform({
+ transform: common.mustCall(function(chunk, encoding, callback) {
+ this.push(chunk);
+ return callback();
+ }),
+ flush: common.mustCall(function(callback) {
+ return callback();
+ })
+ });
+
+ t.on('readable', common.mustCall(function() {
+ while (true) {
+ const chunk = t.read();
+ if (!chunk)
+ break;
+ assert.strictEqual(chunk.toString(), 'content');
+ }
+ }, 2));
+
+ t.write('content');
+ t.end();
+}