diff options
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-stream-readable-needReadable.js')
-rw-r--r-- | cli/tests/node_compat/test/parallel/test-stream-readable-needReadable.js | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-stream-readable-needReadable.js b/cli/tests/node_compat/test/parallel/test-stream-readable-needReadable.js deleted file mode 100644 index 675e5e872..000000000 --- a/cli/tests/node_compat/test/parallel/test-stream-readable-needReadable.js +++ /dev/null @@ -1,106 +0,0 @@ -// 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 assert = require('assert'); -const Readable = require('stream').Readable; - -const readable = new Readable({ - read: () => {} -}); - -// Initialized to false. -assert.strictEqual(readable._readableState.needReadable, false); - -readable.on('readable', common.mustCall(() => { - // When the readable event fires, needReadable is reset. - assert.strictEqual(readable._readableState.needReadable, false); - readable.read(); -})); - -// If a readable listener is attached, then a readable event is needed. -assert.strictEqual(readable._readableState.needReadable, true); - -readable.push('foo'); -readable.push(null); - -readable.on('end', common.mustCall(() => { - // No need to emit readable anymore when the stream ends. - assert.strictEqual(readable._readableState.needReadable, false); -})); - -const asyncReadable = new Readable({ - read: () => {} -}); - -asyncReadable.on('readable', common.mustCall(() => { - if (asyncReadable.read() !== null) { - // After each read(), the buffer is empty. - // If the stream doesn't end now, - // then we need to notify the reader on future changes. - assert.strictEqual(asyncReadable._readableState.needReadable, true); - } -}, 2)); - -process.nextTick(common.mustCall(() => { - asyncReadable.push('foooo'); -})); -process.nextTick(common.mustCall(() => { - asyncReadable.push('bar'); -})); -setImmediate(common.mustCall(() => { - asyncReadable.push(null); - assert.strictEqual(asyncReadable._readableState.needReadable, false); -})); - -const flowing = new Readable({ - read: () => {} -}); - -// Notice this must be above the on('data') call. -flowing.push('foooo'); -flowing.push('bar'); -flowing.push('quo'); -process.nextTick(common.mustCall(() => { - flowing.push(null); -})); - -// When the buffer already has enough data, and the stream is -// in flowing mode, there is no need for the readable event. -flowing.on('data', common.mustCall(function(data) { - assert.strictEqual(flowing._readableState.needReadable, false); -}, 3)); - -const slowProducer = new Readable({ - read: () => {} -}); - -slowProducer.on('readable', common.mustCall(() => { - const chunk = slowProducer.read(8); - const state = slowProducer._readableState; - if (chunk === null) { - // The buffer doesn't have enough data, and the stream is not need, - // we need to notify the reader when data arrives. - assert.strictEqual(state.needReadable, true); - } else { - assert.strictEqual(state.needReadable, false); - } -}, 4)); - -process.nextTick(common.mustCall(() => { - slowProducer.push('foo'); - process.nextTick(common.mustCall(() => { - slowProducer.push('foo'); - process.nextTick(common.mustCall(() => { - slowProducer.push('foo'); - process.nextTick(common.mustCall(() => { - slowProducer.push(null); - })); - })); - })); -})); |