basic.js 566 B

1234567891011121314151617181920212223242526272829
  1. var test = require('tap').test
  2. var dz = require('../dezalgo.js')
  3. test('the dark pony', function(t) {
  4. var n = 0
  5. function foo(i, cb) {
  6. cb = dz(cb)
  7. if (++n % 2) cb(true, i)
  8. else process.nextTick(cb.bind(null, false, i))
  9. }
  10. var called = 0
  11. var order = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]
  12. var o = 0
  13. for (var i = 0; i < 10; i++) {
  14. foo(i, function(cached, i) {
  15. t.equal(i, order[o++])
  16. t.equal(i % 2, cached ? 0 : 1)
  17. called++
  18. })
  19. t.equal(called, 0)
  20. }
  21. setTimeout(function() {
  22. t.equal(called, 10)
  23. t.end()
  24. })
  25. })