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.
59 lines
1.5 KiB
59 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(); |
|
} |
|
};
|
|
|