1 var test = require('tap').test
2 var wrappy = require('../wrappy.js')
4 test('basic', function (t) {
5 function onceifier (cb) {
10 return cb.apply(this, arguments)
13 onceifier.iAmOnce = {}
14 var once = wrappy(onceifier)
15 t.equal(once.iAmOnce, onceifier.iAmOnce)
22 // has some rando property
25 var onlyPrintOnce = once(boo)
27 onlyPrintOnce() // prints 'boo'
28 onlyPrintOnce() // does nothing
31 // random property is retained!
32 t.equal(onlyPrintOnce.iAmBoo, true)
35 var logwrap = wrappy(function (msg, cb) {
36 logs.push(msg + ' wrapping cb')
38 logs.push(msg + ' before cb')
39 var ret = cb.apply(this, arguments)
40 logs.push(msg + ' after cb')
44 var c = logwrap('foo', function () {
45 t.same(logs, [ 'foo wrapping cb', 'foo before cb' ])
48 t.same(logs, [ 'foo wrapping cb', 'foo before cb', 'foo after cb' ])