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