pull-stream
Version:
minimal pull stream
64 lines (54 loc) • 1.24 kB
JavaScript
var pull = require('../')
var tape = require('tape')
tape('async-map', function (t) {
pull(
pull.count(),
pull.take(21),
pull.asyncMap(function (data, cb) {
return cb(null, data + 1)
}),
pull.collect(function (err, ary) {
console.log(ary)
t.equal(ary.length, 21)
t.end()
})
)
})
tape('abort async map', function (t) {
var err = new Error('abort')
t.plan(2)
var read = pull(
pull.infinite(),
pull.asyncMap(function (data, cb) {
setImmediate(function () {
cb(null, data)
})
})
)
read(null, function (end) {
if(!end) throw new Error('expected read to end')
t.ok(end, "read's callback")
})
read(err, function (end) {
if(!end) throw new Error('expected abort to end')
t.ok(end, "Abort's callback")
t.end()
})
})
tape('asyncMap aborts when map errors', function (t) {
t.plan(2)
var ERR = new Error('abort')
pull(
pull.values([1,2,3], function (err) {
console.log('on abort')
t.equal(err, ERR, 'abort gets error')
t.end()
}),
pull.asyncMap(function (data, cb) {
cb(ERR)
}),
pull.collect(function (err) {
t.equal(err, ERR, 'collect gets error')
})
)
})