Files
lodash/test/lodash(...)-methods-that-return-unwrapped-values.js
Benjamin Tan d5ef31929a Add initial test files from lodash v4. (#4172)
* Install test dependencies.

* Add initial test files.

These files were created using a simplistic AST manipulator using `recast` to
preserve formatting. There's bound to be a huge chunk of errors, but this serves
as a good start. QUnit was replaced with Mocha, with ES2015 imports running via
`esm`.

As far as possible, QUnit-specific syntax has been replaced with Mocha's
`describe` and `it`, while the native Node.js `assert` module is used for
assertions. Files in the `test` directory ending in `.test.js` will be treated
as test files.

* Add initial passing files to test run.
2019-02-12 09:11:32 -08:00

113 lines
2.0 KiB
JavaScript

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 _);
});
});
});