• File: pipe_test.js
  • Full Path: /var/www/nodejs/daily_store_reports_nodejs/node_modules/lazystream/test/pipe_test.js
  • Date Modified: 02/04/2023 9:31 PM
  • File size: 1018 B
  • MIME-type: text/plain
  • Charset: utf-8

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);
  }
};