You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
758 B

'use strict';
const common = require('../common');
const assert = require('assert');
const stream = require('stream');
const PassThrough = stream.PassThrough;
const src = new PassThrough({ objectMode: true });
const tx = new PassThrough({ objectMode: true });
const dest = new PassThrough({ objectMode: true });
const expect = [ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
const results = [];
dest.on('data', common.mustCall(function(x) {
results.push(x);
}, expect.length));
src.pipe(tx).pipe(dest);
let i = -1;
const int = setInterval(common.mustCall(function() {
if (results.length === expect.length) {
src.end();
clearInterval(int);
assert.deepStrictEqual(results, expect);
} else {
src.write(i++);
}
}, expect.length + 1), 1);