From ea4357ca9857dc903b045c567398a9021fa036cd Mon Sep 17 00:00:00 2001 From: jdalton Date: Fri, 3 Apr 2015 17:44:59 -0500 Subject: [PATCH] Add `_.callback` tests for deep paths. --- test/test.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/test/test.js b/test/test.js index 9ec4b8730..1fffebe4d 100644 --- a/test/test.js +++ b/test/test.js @@ -2581,9 +2581,15 @@ }); test('should return a callback created by `_.matches` when `func` is an object', 2, function() { - var callback = _.callback({ 'a': 1 }); - strictEqual(callback({ 'a': 1, 'b': 2 }), true); - strictEqual(callback({}), false); + var callback = _.callback({ 'a': 1, 'b': 2 }); + strictEqual(callback({ 'a': 1, 'b': 2, 'c': 3 }), true); + strictEqual(callback({ 'b': 2 }), false); + }); + + test('should return a callback created by `_.matches` when `func` is an array', 2, function() { + var callback = _.callback(['a', 'b']); + strictEqual(callback({ '0': 'a', '1': 'b', '2': 'c' }), true); + strictEqual(callback({ '1': 'b' }), false); }); test('should return a callback created by `_.matchesProperty` when `func` is a number or string and `thisArg` is not `undefined`', 3, function() { @@ -2599,6 +2605,13 @@ strictEqual(callback(array), undefined); }); + test('should support deep paths for `_.matchesProperty` shorthands', 1, function() { + var object = { 'a': { 'b': { 'c': { 'd': 1, 'e': 2 } } } }, + callback = _.callback('a.b.c', { 'e': 2 }); + + strictEqual(callback(object), true); + }); + test('should return a callback created by `_.property` when `func` is a number or string', 2, function() { var array = ['a'], callback = _.callback(0); @@ -2609,6 +2622,13 @@ strictEqual(callback(array), 'a'); }); + test('should support deep paths for `_.property` shorthands', 1, function() { + var object = { 'a': { 'b': { 'c': 3 } } }, + callback = _.callback('a.b.c'); + + strictEqual(callback(object), 3); + }); + test('should work with functions created by `_.partial` and `_.partialRight`', 2, function() { function fn() { var result = [this.a];