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.
		
		
		
		
		
			
		
			
				
					37 lines
				
				1018 B
			
		
		
			
		
	
	
					37 lines
				
				1018 B
			| 
											2 years ago
										 | 
 | ||
|  | 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); | ||
|  |   } | ||
|  | }; | ||
|  | 
 | ||
|  | 
 |