From 0105b93f3862ed66190e32733d10ba5d8d95624c Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Wed, 27 Jan 2016 00:13:50 -0800 Subject: [PATCH] Ensure fp `convert` can work with aliases as `name`. --- fp/_baseConvert.js | 1 + fp/_mapping.js | 14 +++++++------- test/test-fp.js | 27 +++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/fp/_baseConvert.js b/fp/_baseConvert.js index bb506f333..5e71b64d8 100644 --- a/fp/_baseConvert.js +++ b/fp/_baseConvert.js @@ -149,6 +149,7 @@ function baseConvert(util, name, func) { }; var wrap = function(name, func) { + name = mapping.aliasToReal[name] || name; var wrapper = wrappers[name]; if (wrapper) { return wrapper(func); diff --git a/fp/_mapping.js b/fp/_mapping.js index 29e4374b6..711ac45c5 100644 --- a/fp/_mapping.js +++ b/fp/_mapping.js @@ -85,13 +85,13 @@ exports.aryMethod = { 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN', 'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq', 'every', - 'extend', 'filter', 'find', 'find', 'findIndex', 'findKey', 'findLast', - 'findLastIndex', 'findLastKey', 'flatMap', 'forEach', 'forEachRight', 'forIn', - 'forInRight', 'forOwn', 'forOwnRight', 'get', 'groupBy', 'gt', 'gte', 'has', - 'hasIn', 'includes', 'indexOf', 'intersection', 'invertBy', 'invoke', - 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', - 'map', 'mapKeys', 'mapValues', 'matchesProperty', 'maxBy', 'merge', 'minBy', - 'omit', 'omitBy', 'orderBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', + 'filter', 'find', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex', + 'findLastKey', 'flatMap', 'forEach', 'forEachRight', 'forIn', 'forInRight', + 'forOwn', 'forOwnRight', 'get', 'groupBy', 'gt', 'gte', 'has', 'hasIn', + 'includes', 'indexOf', 'intersection', 'invertBy', 'invoke', 'invokeMap', + 'isEqual', 'isMatch', 'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map', + 'mapKeys', 'mapValues', 'matchesProperty', 'maxBy', 'merge', 'minBy', 'omit', + 'omitBy', 'orderBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partition', 'pick', 'pickBy', 'pull', 'pullAll', 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove', 'repeat', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex', 'sortedIndexOf', 'sortedLastIndex', diff --git a/test/test-fp.js b/test/test-fp.js index 1b877912f..430ad08fd 100644 --- a/test/test-fp.js +++ b/test/test-fp.js @@ -649,6 +649,33 @@ /*--------------------------------------------------------------------------*/ + QUnit.module('fp.extend'); + + (function() { + QUnit.test('should convert by name', function(assert) { + assert.expect(2); + + function Foo() {} + Foo.prototype = { 'b': 2 }; + + var object = { 'a': 1 }; + + if (!document) { + var extend = convert('extend', _.extend), + value = _.clone(object), + actual = extend(value, new Foo); + + assert.deepEqual(value, object); + assert.deepEqual(actual, { 'a': 1, 'b': 2 }); + } + else { + skipTest(assert, 2); + } + }); + }()); + + /*--------------------------------------------------------------------------*/ + QUnit.module('fp.fill'); (function() {