| var tape = require('tape') |
| var writer = require('./') |
| |
| tape('is a write stream', function (t) { |
| var expected = ['hello', 'world', 'verden'] |
| var ws = writer.obj(write) |
| |
| ws.write('hello') |
| ws.write('world') |
| ws.write('verden') |
| ws.end(function () { |
| t.same(expected.length, 0) |
| t.end() |
| }) |
| |
| function write (data, enc, cb) { |
| t.same(data, expected.shift()) |
| cb() |
| } |
| }) |
| |
| tape('is flushable', function (t) { |
| var expected = ['hello', 'world', 'verden'] |
| var flushed = false |
| |
| var ws = writer.obj(write, flush) |
| |
| ws.write('hello') |
| ws.write('world') |
| ws.write('verden') |
| ws.end(function () { |
| t.same(expected.length, 0) |
| t.ok(flushed, 'was flushed') |
| t.end() |
| }) |
| |
| function write (data, enc, cb) { |
| t.same(data, expected.shift()) |
| cb() |
| } |
| |
| function flush (cb) { |
| flushed = true |
| process.nextTick(cb) |
| } |
| }) |
| |
| tape('can pass options', function (t) { |
| var expected = ['hello', 'world', 'verden'] |
| var flushed = false |
| |
| var ws = writer({objectMode: true}, write, flush) |
| |
| ws.write('hello') |
| ws.write('world') |
| ws.write('verden') |
| ws.end(function () { |
| t.same(expected.length, 0) |
| t.ok(flushed, 'was flushed') |
| t.end() |
| }) |
| |
| function write (data, enc, cb) { |
| t.same(data, expected.shift()) |
| cb() |
| } |
| |
| function flush (cb) { |
| flushed = true |
| process.nextTick(cb) |
| } |
| }) |
| |
| tape('emits error on destroy', function (t) { |
| var expected = new Error() |
| |
| var ws = writer({objectMode: true}, function () {}) |
| |
| ws.on('error', function (err) { |
| t.equal(err, expected) |
| }) |
| ws.on('close', t.end) |
| |
| ws.destroy(expected) |
| }) |