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.
85 lines
1.6 KiB
85 lines
1.6 KiB
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) |
|
})
|
|
|