mirror of
https://github.com/Instadapp/Swap-Aggregator-Subgraph.git
synced 2024-07-29 21:57:12 +00:00
111 lines
2.1 KiB
JavaScript
111 lines
2.1 KiB
JavaScript
var tape = require('tape')
|
|
var pull = require('pull-stream')
|
|
var gate = require('../through')
|
|
var peek = require('pull-peek')
|
|
|
|
tape('simple resolve after', function (t) {
|
|
|
|
var g = gate()
|
|
|
|
pull(
|
|
pull.values([1,2,3,4,5]),
|
|
g,
|
|
pull.collect(function (err, ary) {
|
|
if(err) throw err
|
|
t.deepEqual(ary, [5, 10, 15, 20, 25])
|
|
t.end()
|
|
})
|
|
)
|
|
|
|
g.resolve(pull.map(function (e) { return e * 5 }))
|
|
|
|
})
|
|
|
|
tape('simple resolve before', function (t) {
|
|
|
|
var g = gate()
|
|
g.resolve(pull.map(function (e) { return e * 5 }))
|
|
|
|
pull(
|
|
pull.values([1,2,3,4,5]),
|
|
g,
|
|
pull.collect(function (err, ary) {
|
|
if(err) throw err
|
|
t.deepEqual(ary, [5, 10, 15, 20, 25])
|
|
t.end()
|
|
})
|
|
)
|
|
|
|
})
|
|
|
|
tape('simple resolve mid', function (t) {
|
|
|
|
var g = gate()
|
|
|
|
var source = pull(pull.values([1,2,3,4,5]), g)
|
|
|
|
g.resolve(pull.map(function (e) { return e * 5 }))
|
|
|
|
pull(source,
|
|
pull.collect(function (err, ary) {
|
|
if(err) throw err
|
|
t.deepEqual(ary, [5, 10, 15, 20, 25])
|
|
t.end()
|
|
})
|
|
)
|
|
})
|
|
|
|
tape('resolve after read', function (t) {
|
|
var g = gate(), resolved = false
|
|
|
|
pull(
|
|
pull.values([1,2,3,4,5]),
|
|
function (read) {
|
|
return function (abort, cb) {
|
|
read(abort, function (end, data) {
|
|
if(!resolved) {
|
|
resolved = true
|
|
g.resolve(pull.map(function (e) { return e * 5 }))
|
|
}
|
|
cb(end, data)
|
|
})
|
|
}
|
|
},
|
|
//peek always reads the first item, before it has been called.
|
|
peek(),
|
|
g,
|
|
pull.collect(function (err, ary) {
|
|
if(err) throw err
|
|
t.deepEqual(ary, [5, 10, 15, 20, 25])
|
|
t.end()
|
|
})
|
|
)
|
|
|
|
})
|
|
|
|
tape('peek with resume', function (t) {
|
|
|
|
var defer = gate()
|
|
|
|
pull(
|
|
pull.values([1,2,3,4,5]),
|
|
defer,
|
|
peek(function (end, data) {
|
|
console.log('first', end, data)
|
|
t.equal(data, 2)
|
|
first = data
|
|
}),
|
|
pull.collect(function (err, ary) {
|
|
if(err) throw err
|
|
t.equal(first, 2)
|
|
t.deepEqual(ary, [2,4,6,8,10])
|
|
t.end()
|
|
})
|
|
)
|
|
|
|
defer.resolve(pull.map(function (e) {
|
|
return e*2
|
|
}))
|
|
|
|
})
|