diff options
Diffstat (limited to 'node_modules/kareem/test/wrap.test.js')
-rw-r--r-- | node_modules/kareem/test/wrap.test.js | 342 |
1 files changed, 0 insertions, 342 deletions
diff --git a/node_modules/kareem/test/wrap.test.js b/node_modules/kareem/test/wrap.test.js deleted file mode 100644 index dd9196e..0000000 --- a/node_modules/kareem/test/wrap.test.js +++ /dev/null @@ -1,342 +0,0 @@ -var assert = require('assert'); -var Kareem = require('../'); - -describe('wrap()', function() { - var hooks; - - beforeEach(function() { - hooks = new Kareem(); - }); - - it('handles pre errors', function(done) { - hooks.pre('cook', function(done) { - done('error!'); - }); - - hooks.post('cook', function(obj) { - obj.tofu = 'no'; - }); - - var obj = { bacon: 0, eggs: 0 }; - - var args = [obj]; - args.push(function(error, result) { - assert.equal('error!', error); - assert.ok(!result); - assert.equal(undefined, obj.tofu); - done(); - }); - - hooks.wrap( - 'cook', - function(o, callback) { - // Should never get called - assert.ok(false); - callback(null, o); - }, - obj, - args); - }); - - it('handles pre errors when no callback defined', function(done) { - hooks.pre('cook', function(done) { - done('error!'); - }); - - hooks.post('cook', function(obj) { - obj.tofu = 'no'; - }); - - var obj = { bacon: 0, eggs: 0 }; - - var args = [obj]; - - hooks.wrap( - 'cook', - function(o, callback) { - // Should never get called - assert.ok(false); - callback(null, o); - }, - obj, - args); - - setTimeout( - function() { - done(); - }, - 25); - }); - - it('handles errors in wrapped function', function(done) { - hooks.pre('cook', function(done) { - done(); - }); - - hooks.post('cook', function(obj) { - obj.tofu = 'no'; - }); - - var obj = { bacon: 0, eggs: 0 }; - - var args = [obj]; - args.push(function(error, result) { - assert.equal('error!', error); - assert.ok(!result); - assert.equal(undefined, obj.tofu); - done(); - }); - - hooks.wrap( - 'cook', - function(o, callback) { - callback('error!'); - }, - obj, - args); - }); - - it('handles errors in post', function(done) { - hooks.pre('cook', function(done) { - done(); - }); - - hooks.post('cook', function(obj, callback) { - obj.tofu = 'no'; - callback('error!'); - }); - - var obj = { bacon: 0, eggs: 0 }; - - var args = [obj]; - args.push(function(error, result) { - assert.equal('error!', error); - assert.ok(!result); - assert.equal('no', obj.tofu); - done(); - }); - - hooks.wrap( - 'cook', - function(o, callback) { - callback(null, o); - }, - obj, - args); - }); - - it('defers errors to post hooks if enabled', function(done) { - hooks.pre('cook', function(done) { - done(new Error('fail')); - }); - - hooks.post('cook', function(error, res, callback) { - callback(new Error('another error occurred')); - }); - - var args = []; - args.push(function(error) { - assert.equal(error.message, 'another error occurred'); - done(); - }); - - hooks.wrap( - 'cook', - function(callback) { - assert.ok(false); - callback(); - }, - null, - args, - { useErrorHandlers: true, numCallbackParams: 1 }); - }); - - it('error handlers with no callback', function(done) { - hooks.pre('cook', function(done) { - done(new Error('fail')); - }); - - hooks.post('cook', function(error, callback) { - assert.equal(error.message, 'fail'); - done(); - }); - - var args = []; - - hooks.wrap( - 'cook', - function(callback) { - assert.ok(false); - callback(); - }, - null, - args, - { useErrorHandlers: true }); - }); - - it('error handlers with no error', function(done) { - hooks.post('cook', function(error, callback) { - callback(new Error('another error occurred')); - }); - - var args = []; - args.push(function(error) { - assert.ifError(error); - done(); - }); - - hooks.wrap( - 'cook', - function(callback) { - callback(); - }, - null, - args, - { useErrorHandlers: true }); - }); - - it('works with no args', function(done) { - hooks.pre('cook', function(done) { - done(); - }); - - hooks.post('cook', function(callback) { - obj.tofu = 'no'; - callback(); - }); - - var obj = { bacon: 0, eggs: 0 }; - - var args = []; - - hooks.wrap( - 'cook', - function(callback) { - callback(null); - }, - obj, - args); - - setTimeout( - function() { - assert.equal('no', obj.tofu); - done(); - }, - 25); - }); - - it('handles pre errors with no args', function(done) { - hooks.pre('cook', function(done) { - done('error!'); - }); - - hooks.post('cook', function(callback) { - obj.tofu = 'no'; - callback(); - }); - - var obj = { bacon: 0, eggs: 0 }; - - var args = []; - - hooks.wrap( - 'cook', - function(callback) { - callback(null); - }, - obj, - args); - - setTimeout( - function() { - assert.equal(undefined, obj.tofu); - done(); - }, - 25); - }); - - it('handles wrapped function errors with no args', function(done) { - hooks.pre('cook', function(done) { - obj.waffles = false; - done(); - }); - - hooks.post('cook', function(callback) { - obj.tofu = 'no'; - callback(); - }); - - var obj = { bacon: 0, eggs: 0 }; - - var args = []; - - hooks.wrap( - 'cook', - function(callback) { - callback('error!'); - }, - obj, - args); - - setTimeout( - function() { - assert.equal(false, obj.waffles); - assert.equal(undefined, obj.tofu); - done(); - }, - 25); - }); - - it('handles post errors with no args', function(done) { - hooks.pre('cook', function(done) { - obj.waffles = false; - done(); - }); - - hooks.post('cook', function(callback) { - obj.tofu = 'no'; - callback('error!'); - }); - - var obj = { bacon: 0, eggs: 0 }; - - var args = []; - - hooks.wrap( - 'cook', - function(callback) { - callback(); - }, - obj, - args); - - setTimeout( - function() { - assert.equal(false, obj.waffles); - assert.equal('no', obj.tofu); - done(); - }, - 25); - }); - - it('sync wrappers', function() { - var calledPre = 0; - var calledFn = 0; - var calledPost = 0; - hooks.pre('cook', function() { - ++calledPre; - }); - - hooks.post('cook', function() { - ++calledPost; - }); - - var wrapper = hooks.createWrapperSync('cook', function() { ++calledFn; }); - - wrapper(); - - assert.equal(calledPre, 1); - assert.equal(calledFn, 1); - assert.equal(calledPost, 1); - }); -}); |