var stream = require('../lib/lazystream'); var helper = require('./helper'); exports.pipe = { readwrite: function(test) { var expected = [ 'line1\n', 'line2\n' ]; var actual = []; var readableInstantiated = false; var writableInstantiated = false; test.expect(3); var readable = new stream.Readable(function() { readableInstantiated = true; return new helper.DummyReadable([].concat(expected)); }); var writable = new stream.Writable(function() { writableInstantiated = true; return new helper.DummyWritable(actual); }); test.equal(readableInstantiated, false, 'DummyReadable should only be instantiated when it is needed'); test.equal(writableInstantiated, false, 'DummyWritable should only be instantiated when it is needed'); writable.on('end', function() { test.equal(actual.join(''), expected.join(''), 'Piping on demand streams should keep data intact'); test.done(); }); readable.pipe(writable); } };