| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | 
							- var tape = require('tape')
 
- var thunky = require('./')
 
- tape('run only once', function (t) {
 
-   t.plan(3)
 
-   var ran = 0
 
-   var run = thunky(function (cb) {
 
-     ran++
 
-     cb()
 
-   })
 
-   run(function () {
 
-     t.same(ran, 1, 'ran once')
 
-   })
 
-   run(function () {
 
-     t.same(ran, 1, 'ran once')
 
-   })
 
-   run(function () {
 
-     t.same(ran, 1, 'ran once')
 
-   })
 
- })
 
- tape('run only once async', function (t) {
 
-   t.plan(3)
 
-   var ran = 0
 
-   var run = thunky(function (cb) {
 
-     process.nextTick(function () {
 
-       ran++
 
-       cb()
 
-     })
 
-   })
 
-   run(function () {
 
-     t.same(ran, 1, 'ran once')
 
-   })
 
-   run(function () {
 
-     t.same(ran, 1, 'ran once')
 
-   })
 
-   run(function () {
 
-     t.same(ran, 1, 'ran once')
 
-   })
 
- })
 
- tape('re-run on error', function (t) {
 
-   t.plan(3)
 
-   var ran = 0
 
-   var run = thunky(function (cb) {
 
-     ran++
 
-     cb(new Error('stop'))
 
-   })
 
-   run(function () {
 
-     t.same(ran, 1, 'ran once')
 
-     run(function () {
 
-       t.same(ran, 2, 'ran once')
 
-       run(function () {
 
-         t.same(ran, 3, 'ran once')
 
-       })
 
-     })
 
-   })
 
- })
 
- tape('pass arguments', function (t) {
 
-   t.plan(6)
 
-   var ran = 0
 
-   var run = thunky(function (fn) {
 
-     ran++
 
-     fn({ hello: 'world' })
 
-   })
 
-   run(function (val) {
 
-     t.same(ran, 1, 'ran once')
 
-     t.same(val, { hello: 'world' })
 
-     run(function (val) {
 
-       t.same(ran, 1, 'ran once')
 
-       t.same(val, { hello: 'world' })
 
-       run(function (val) {
 
-         t.same(ran, 1, 'ran once')
 
-         t.same(val, { hello: 'world' })
 
-       })
 
-     })
 
-   })
 
- })
 
- tape('callback is optional', function (t) {
 
-   t.plan(2)
 
-   var ran = 0
 
-   var run = thunky(function (fn) {
 
-     ran++
 
-     fn({ hello: 'world' })
 
-   })
 
-   run()
 
-   run(function (val) {
 
-     t.same(ran, 1, 'ran once')
 
-     t.same(val, { hello: 'world' })
 
-   })
 
- })
 
- tape('always async', function (t) {
 
-   t.plan(2)
 
-   var run = thunky(function (cb) {
 
-     process.nextTick(cb)
 
-   })
 
-   var sync = true
 
-   run(function () {
 
-     t.ok(!sync, 'not sync')
 
-     var innerSync = true
 
-     run(function () {
 
-       t.ok(!innerSync, 'not sync')
 
-     })
 
-     innerSync = false
 
-   })
 
-   sync = false
 
- })
 
 
  |