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