1'use strict'; 2const common = require('../common'); 3const assert = require('assert'); 4const { Readable } = require('stream'); 5 6// Verify that .push() and .unshift() can be called from 'data' listeners. 7 8for (const method of ['push', 'unshift']) { 9 const r = new Readable({ read() {} }); 10 r.once('data', common.mustCall((chunk) => { 11 assert.strictEqual(r.readableLength, 0); 12 r[method](chunk); 13 assert.strictEqual(r.readableLength, chunk.length); 14 15 r.on('data', common.mustCall((chunk) => { 16 assert.strictEqual(chunk.toString(), 'Hello, world'); 17 })); 18 })); 19 20 r.push('Hello, world'); 21} 22