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