nodejs-mozilla/test/parallel/test-stream-once-readable-p...

62 lines
1.2 KiB
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const { Readable, Writable } = require('stream');
// This test ensures that if have 'readable' listener
// on Readable instance it will not disrupt the pipe.
{
let receivedData = '';
const w = new Writable({
write: (chunk, env, callback) => {
receivedData += chunk;
callback();
},
});
const data = ['foo', 'bar', 'baz'];
const r = new Readable({
read: () => {},
});
r.once('readable', common.mustCall());
r.pipe(w);
r.push(data[0]);
r.push(data[1]);
r.push(data[2]);
r.push(null);
w.on('finish', common.mustCall(() => {
assert.strictEqual(receivedData, data.join(''));
}));
}
{
let receivedData = '';
const w = new Writable({
write: (chunk, env, callback) => {
receivedData += chunk;
callback();
},
});
const data = ['foo', 'bar', 'baz'];
const r = new Readable({
read: () => {},
});
r.pipe(w);
r.push(data[0]);
r.push(data[1]);
r.push(data[2]);
r.push(null);
r.once('readable', common.mustCall());
w.on('finish', common.mustCall(() => {
assert.strictEqual(receivedData, data.join(''));
}));
}