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() }) })