30 lines
566 B
JavaScript
30 lines
566 B
JavaScript
var test = require('tap').test
|
|
var dz = require('../dezalgo.js')
|
|
|
|
test('the dark pony', function(t) {
|
|
|
|
var n = 0
|
|
function foo(i, cb) {
|
|
cb = dz(cb)
|
|
if (++n % 2) cb(true, i)
|
|
else process.nextTick(cb.bind(null, false, i))
|
|
}
|
|
|
|
var called = 0
|
|
var order = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]
|
|
var o = 0
|
|
for (var i = 0; i < 10; i++) {
|
|
foo(i, function(cached, i) {
|
|
t.equal(i, order[o++])
|
|
t.equal(i % 2, cached ? 0 : 1)
|
|
called++
|
|
})
|
|
t.equal(called, 0)
|
|
}
|
|
|
|
setTimeout(function() {
|
|
t.equal(called, 10)
|
|
t.end()
|
|
})
|
|
})
|