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