• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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