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.

87 lines
1.5 KiB

var tape = require('tape')
var defer = require('../source')
var pull = require('pull-stream')
tape('defer', function (t) {
var deferred = defer()
pull(
deferred,
pull.map(function (e) { return e*5 }),
pull.collect(function (err, ary) {
if(err) throw err
t.deepEqual(ary, [5, 10, 15, 20, 25])
t.end()
})
)
deferred.resolve(pull.values([1,2,3,4,5]))
})
tape('defer - resolve early', function (t) {
var deferred = defer()
deferred.resolve(pull.values([1,2,3,4,5]))
pull(
deferred,
pull.map(function (e) { return e*5 }),
pull.collect(function (err, ary) {
if(err) throw err
t.deepEqual(ary, [5, 10, 15, 20, 25])
t.end()
})
)
})
tape('defer, abort before connecting', function (t) {
var deferred = defer()
//abort the deferred stream immediately.
deferred(true, function () {
console.log('ended')
t.ok(true)
})
deferred.resolve(pull.values([1,2,3], function () {
console.log('aborted')
t.ok(true)
t.end()
}))
})
tape('defer, read and abort before connecting', function (t) {
var deferred = defer(), ended = false
//queue a read immediately
deferred(null, function (end, data) {
t.notOk(end)
t.notOk(ended)
t.equal(data, 1)
})
//abort the deferred stream immediately.
deferred(true, function () {
t.ok(ended = true)
})
deferred.resolve(pull.values([1,2,3], function () {
console.log('aborted')
t.ok(true)
t.end()
}))
})