Initial commit
This commit is contained in:
71
node_modules/kareem/test/misc.test.js
generated
vendored
Normal file
71
node_modules/kareem/test/misc.test.js
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
'use strict';
|
||||
|
||||
const assert = require('assert');
|
||||
const Kareem = require('../');
|
||||
|
||||
describe('hasHooks', function() {
|
||||
it('returns false for toString (Automattic/mongoose#6538)', function() {
|
||||
const k = new Kareem();
|
||||
assert.ok(!k.hasHooks('toString'));
|
||||
});
|
||||
});
|
||||
|
||||
describe('merge', function() {
|
||||
it('handles async pres if source doesnt have them', function() {
|
||||
const k1 = new Kareem();
|
||||
k1.pre('cook', true, function(next, done) {
|
||||
execed.first = true;
|
||||
setTimeout(
|
||||
function() {
|
||||
done('error!');
|
||||
},
|
||||
5);
|
||||
|
||||
next();
|
||||
});
|
||||
|
||||
assert.equal(k1._pres.get('cook').numAsync, 1);
|
||||
|
||||
const k2 = new Kareem();
|
||||
const k3 = k2.merge(k1);
|
||||
assert.equal(k3._pres.get('cook').numAsync, 1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('filter', function() {
|
||||
it('returns clone with only hooks that match `fn()`', function() {
|
||||
const k1 = new Kareem();
|
||||
|
||||
k1.pre('update', { document: true }, f1);
|
||||
k1.pre('update', { query: true }, f2);
|
||||
k1.pre('remove', { document: true }, f3);
|
||||
|
||||
k1.post('update', { document: true }, f1);
|
||||
k1.post('update', { query: true }, f2);
|
||||
k1.post('remove', { document: true }, f3);
|
||||
|
||||
const k2 = k1.filter(hook => hook.document);
|
||||
assert.equal(k2._pres.get('update').length, 1);
|
||||
assert.equal(k2._pres.get('update')[0].fn, f1);
|
||||
assert.equal(k2._pres.get('remove').length, 1);
|
||||
assert.equal(k2._pres.get('remove')[0].fn, f3);
|
||||
|
||||
assert.equal(k2._posts.get('update').length, 1);
|
||||
assert.equal(k2._posts.get('update')[0].fn, f1);
|
||||
assert.equal(k2._posts.get('remove').length, 1);
|
||||
assert.equal(k2._posts.get('remove')[0].fn, f3);
|
||||
|
||||
const k3 = k1.filter(hook => hook.query);
|
||||
assert.equal(k3._pres.get('update').length, 1);
|
||||
assert.equal(k3._pres.get('update')[0].fn, f2);
|
||||
assert.ok(!k3._pres.has('remove'));
|
||||
|
||||
assert.equal(k3._posts.get('update').length, 1);
|
||||
assert.equal(k3._posts.get('update')[0].fn, f2);
|
||||
assert.ok(!k3._posts.has('remove'));
|
||||
|
||||
function f1() {}
|
||||
function f2() {}
|
||||
function f3() {}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user