| 'use strict'; |
| const common = require('../common'); |
| const assert = require('assert'); |
| const { Readable } = require('stream'); |
| |
| // Verify that .push() and .unshift() can be called from 'data' listeners. |
| |
| for (const method of ['push', 'unshift']) { |
| const r = new Readable({ read() {} }); |
| r.once('data', common.mustCall((chunk) => { |
| assert.strictEqual(r.readableLength, 0); |
| r[method](chunk); |
| assert.strictEqual(r.readableLength, chunk.length); |
| |
| r.on('data', common.mustCall((chunk) => { |
| assert.strictEqual(chunk.toString(), 'Hello, world'); |
| })); |
| })); |
| |
| r.push('Hello, world'); |
| } |