import assert from 'assert'; import lodashStable from 'lodash'; describe('lodash(...) methods that return unwrapped values', function() { var funcs = [ 'add', 'camelCase', 'capitalize', 'ceil', 'clone', 'deburr', 'defaultTo', 'divide', 'endsWith', 'escape', 'escapeRegExp', 'every', 'find', 'floor', 'has', 'hasIn', 'head', 'includes', 'isArguments', 'isArray', 'isArrayBuffer', 'isArrayLike', 'isBoolean', 'isBuffer', 'isDate', 'isElement', 'isEmpty', 'isEqual', 'isError', 'isFinite', 'isFunction', 'isInteger', 'isMap', 'isNaN', 'isNative', 'isNil', 'isNull', 'isNumber', 'isObject', 'isObjectLike', 'isPlainObject', 'isRegExp', 'isSafeInteger', 'isSet', 'isString', 'isUndefined', 'isWeakMap', 'isWeakSet', 'join', 'kebabCase', 'last', 'lowerCase', 'lowerFirst', 'max', 'maxBy', 'min', 'minBy', 'multiply', 'nth', 'pad', 'padEnd', 'padStart', 'parseInt', 'pop', 'random', 'reduce', 'reduceRight', 'repeat', 'replace', 'round', 'sample', 'shift', 'size', 'snakeCase', 'some', 'startCase', 'startsWith', 'subtract', 'sum', 'toFinite', 'toInteger', 'toLower', 'toNumber', 'toSafeInteger', 'toString', 'toUpper', 'trim', 'trimEnd', 'trimStart', 'truncate', 'unescape', 'upperCase', 'upperFirst' ]; lodashStable.each(funcs, function(methodName) { it('`_(...).' + methodName + '` should return an unwrapped value when implicitly chaining', function() { var actual = _()[methodName](); assert.notOk(actual instanceof _); }); it('`_(...).' + methodName + '` should return a wrapped value when explicitly chaining', function() { var actual = _().chain()[methodName](); assert.ok(actual instanceof _); }); }); });