Ensure complex paths work with _.get, _.result, & _.set.

This commit is contained in:
jdalton
2015-04-07 19:47:31 -07:00
parent 85af554bac
commit a83e70104c
2 changed files with 23 additions and 2 deletions

View File

@@ -13139,6 +13139,14 @@
});
});
test('`_.' + methodName + '` should handle complex paths', 2, function() {
var object = { 'a': { '-1.23': { '["b"]': { 'c': { "['d']": { 'e': 5 } } } } } };
_.each(['a[-1.23]["[\\"b\\"]"].c[\'[\\\'d\\\']\'].e', ['a', '-1.23', '["b"]', 'c', "['d']", 'e']], function(path) {
strictEqual(func(object, path), 5);
});
});
test('`_.' + methodName + '` should return `undefined` when `object` is nullish', 4, function() {
_.each(['constructor', ['constructor']], function(path) {
strictEqual(func(null, path), undefined);
@@ -13595,6 +13603,16 @@
});
});
test('should handle complex paths', 2, function() {
var object = { 'a': { '1.23': { '["b"]': { 'c': { "['d']": { 'e': 5 } } } } } };
_.each(['a[-1.23]["[\\"b\\"]"].c[\'[\\\'d\\\']\'].e', ['a', '-1.23', '["b"]', 'c', "['d']", 'e']], function(path) {
_.set(object, path, 6);
strictEqual(object.a[-1.23]['["b"]'].c["['d']"].e, 6);
object.a[-1.23]['["b"]'].c["['d']"].e = 5;
});
});
test('should create parts of `path` that are missing', 6, function() {
var object = {};