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.
		
		
		
		
		
			
		
			
				
					60 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					60 lines
				
				1.5 KiB
			| 
											2 years ago
										 | 
 | ||
|  | var Writable = require('../lib/lazystream').Writable; | ||
|  | var DummyWritable = require('./helper').DummyWritable; | ||
|  | 
 | ||
|  | exports.writable = { | ||
|  |   options: function(test) { | ||
|  |     test.expect(3); | ||
|  | 
 | ||
|  |     var writable = new Writable(function(options) { | ||
|  |        test.ok(this instanceof Writable, "Writable should bind itself to callback's this"); | ||
|  |        test.equal(options.encoding, "utf-8", "Writable should make options accessible to callback"); | ||
|  |        this.ok = true; | ||
|  |        return new DummyWritable([]); | ||
|  |     }, {encoding: "utf-8"}); | ||
|  | 
 | ||
|  |     writable.write("test"); | ||
|  | 
 | ||
|  |     test.ok(writable.ok); | ||
|  | 
 | ||
|  |     test.done(); | ||
|  |   }, | ||
|  |   dummy: function(test) { | ||
|  |     var expected = [ 'line1\n', 'line2\n' ]; | ||
|  |     var actual = []; | ||
|  |      | ||
|  |     test.expect(0); | ||
|  | 
 | ||
|  |     var dummy = new DummyWritable(actual); | ||
|  | 
 | ||
|  |     expected.forEach(function(item) { | ||
|  |       dummy.write(new Buffer(item)); | ||
|  |     }); | ||
|  |     test.done(); | ||
|  |   }, | ||
|  |   streams2: function(test) { | ||
|  |     var expected = [ 'line1\n', 'line2\n' ]; | ||
|  |     var actual = []; | ||
|  |     var instantiated = false; | ||
|  | 
 | ||
|  |     test.expect(2); | ||
|  | 
 | ||
|  |     var writable = new Writable(function() { | ||
|  |       instantiated = true; | ||
|  |       return new DummyWritable(actual); | ||
|  |     }); | ||
|  | 
 | ||
|  |     test.equal(instantiated, false, 'DummyWritable should only be instantiated when it is needed'); | ||
|  | 
 | ||
|  |     writable.on('end', function() { | ||
|  |       test.equal(actual.join(''), expected.join(''), 'Writable should not change the data of the underlying stream'); | ||
|  |       test.done(); | ||
|  |     }); | ||
|  | 
 | ||
|  |     expected.forEach(function(item) { | ||
|  |       writable.write(new Buffer(item)); | ||
|  |     }); | ||
|  |     writable.end(); | ||
|  |   } | ||
|  | }; |