mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-01 23:57:49 +00:00
Cleanup _.isError and add more tests.
This commit is contained in:
59
lodash.js
59
lodash.js
@@ -6106,19 +6106,19 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if `value` is a date.
|
||||
* Checks if `value` is a `Date` object.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @category Objects
|
||||
* @param {*} value The value to check.
|
||||
* @returns {boolean} Returns `true` if `value` is a date, else `false`.
|
||||
* @returns {boolean} Returns `true` if `value` is a date object, else `false`.
|
||||
* @example
|
||||
*
|
||||
* _.isDate(new Date);
|
||||
* // => true
|
||||
*
|
||||
* _.isDate('Wed May 23 2012');
|
||||
* _.isDate('Mon April 23 2012');
|
||||
* // => false
|
||||
*/
|
||||
function isDate(value) {
|
||||
@@ -6257,6 +6257,27 @@
|
||||
return baseIsEqual(value, other, callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
|
||||
* `SyntaxError`, `TypeError`, or `URIError` object.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @category Objects
|
||||
* @param {*} value The value to check.
|
||||
* @returns {boolean} Returns `true` if `value` is an error object, else `false`.
|
||||
* @example
|
||||
*
|
||||
* _.isError(new Error);
|
||||
* // => true
|
||||
*
|
||||
* _.isError(Error);
|
||||
* // => false
|
||||
*/
|
||||
function isError(value) {
|
||||
return value && typeof value == 'object' && toString.call(value) == errorClass || false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if `value` is, or can be coerced to, a finite number.
|
||||
*
|
||||
@@ -6398,7 +6419,7 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if `value` is a number.
|
||||
* Checks if `value` is a `Number` primitive or object.
|
||||
*
|
||||
* Note: `NaN` is considered a number. See the [ES5 spec](http://es5.github.io/#x8.5)
|
||||
* for more details.
|
||||
@@ -6469,13 +6490,13 @@
|
||||
};
|
||||
|
||||
/**
|
||||
* Checks if `value` is a regular expression.
|
||||
* Checks if `value` is a `RegExp` object.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @category Objects
|
||||
* @param {*} value The value to check.
|
||||
* @returns {boolean} Returns `true` if `value` is a regular expression, else `false`.
|
||||
* @returns {boolean} Returns `true` if `value` is a regexp object, else `false`.
|
||||
* @example
|
||||
*
|
||||
* _.isRegExp(/abc/);
|
||||
@@ -6491,7 +6512,7 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if `value` is a string.
|
||||
* Checks if `value` is a `String` primitive or object.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
@@ -6531,28 +6552,6 @@
|
||||
return typeof value == 'undefined';
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if `value` is an instance of a native `Error` class.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @category Objects
|
||||
* @param {*} value The value to check.
|
||||
* @returns {boolean} Returns `true` if `value` is an instance of a native `Error`, else `false`.
|
||||
* @example
|
||||
*
|
||||
* _.isError(new Error);
|
||||
* // => true
|
||||
*
|
||||
* _.isError('string');
|
||||
* // => false
|
||||
*/
|
||||
function isError(value) {
|
||||
var type = typeof value;
|
||||
return value && type == 'object' && toString.call(value) == errorClass ||
|
||||
false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an array of the own enumerable property names of `object`.
|
||||
*
|
||||
@@ -8388,6 +8387,7 @@
|
||||
lodash.isElement = isElement;
|
||||
lodash.isEmpty = isEmpty;
|
||||
lodash.isEqual = isEqual;
|
||||
lodash.isError = isError;
|
||||
lodash.isFinite = isFinite;
|
||||
lodash.isFunction = isFunction;
|
||||
lodash.isNaN = isNaN;
|
||||
@@ -8398,7 +8398,6 @@
|
||||
lodash.isRegExp = isRegExp;
|
||||
lodash.isString = isString;
|
||||
lodash.isUndefined = isUndefined;
|
||||
lodash.isError = isError;
|
||||
lodash.kebabCase = kebabCase;
|
||||
lodash.lastIndexOf = lastIndexOf;
|
||||
lodash.mixin = mixin;
|
||||
|
||||
211
test/test.js
211
test/test.js
@@ -270,6 +270,7 @@
|
||||
"'_array': [1, 2, 3],",
|
||||
"'_boolean': new Boolean(false),",
|
||||
"'_date': new Date,",
|
||||
"'_errors': [new Error, new EvalError, new RangeError, new ReferenceError, new SyntaxError, new TypeError, new URIError]",
|
||||
"'_function': function() {},",
|
||||
"'_nan': NaN,",
|
||||
"'_null': null,",
|
||||
@@ -277,8 +278,7 @@
|
||||
"'_object': { 'a': 1, 'b': 2, 'c': 3 },",
|
||||
"'_regexp': /x/,",
|
||||
"'_string': new String('a'),",
|
||||
"'_undefined': undefined,",
|
||||
"'_error': new Error(),",
|
||||
"'_undefined': undefined",
|
||||
'})'
|
||||
].join('\n')));
|
||||
}
|
||||
@@ -1621,7 +1621,7 @@
|
||||
|
||||
test('should ignore primitive `prototype` arguments and use an empty object instead', 1, function() {
|
||||
var primitives = [true, null, 1, 'a', undefined],
|
||||
expected = _.map(primitives, function() { return true; });
|
||||
expected = _.map(primitives, _.constant(true));
|
||||
|
||||
var actual = _.map(primitives, function(value, index) {
|
||||
return _.isPlainObject(index ? _.create(value) : _.create());
|
||||
@@ -2397,7 +2397,7 @@
|
||||
|
||||
(function() {
|
||||
test('should return `true` for empty or falsey collections', 1, function() {
|
||||
var expected = _.map(empties, function() { return true; });
|
||||
var expected = _.map(empties, _.constant(true));
|
||||
|
||||
var actual = _.map(empties, function(value) {
|
||||
try {
|
||||
@@ -3979,7 +3979,7 @@
|
||||
strictEqual(_.isArguments(args), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non `arguments` objects', 9, function() {
|
||||
test('should return `false` for non `arguments` objects', 10, function() {
|
||||
var expected = _.map(falsey, _.constant(false));
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -3989,9 +3989,10 @@
|
||||
strictEqual(_.isArguments([1, 2, 3]), false);
|
||||
strictEqual(_.isArguments(true), false);
|
||||
strictEqual(_.isArguments(new Date), false);
|
||||
strictEqual(_.isArguments(new Error), false);
|
||||
strictEqual(_.isArguments(_), false);
|
||||
strictEqual(_.isArguments({ '0': 1, 'callee': _.noop, 'length': 1 }), false);
|
||||
strictEqual(_.isArguments(0), false);
|
||||
strictEqual(_.isArguments(1), false);
|
||||
strictEqual(_.isArguments(/x/), false);
|
||||
strictEqual(_.isArguments('a'), false);
|
||||
|
||||
@@ -4019,7 +4020,7 @@
|
||||
strictEqual(_.isArray([1, 2, 3]), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non arrays', 9, function() {
|
||||
test('should return `false` for non arrays', 10, function() {
|
||||
var expected = _.map(falsey, _.constant(false));
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -4029,9 +4030,10 @@
|
||||
strictEqual(_.isArray(args), false);
|
||||
strictEqual(_.isArray(true), false);
|
||||
strictEqual(_.isArray(new Date), false);
|
||||
strictEqual(_.isArray(new Error), false);
|
||||
strictEqual(_.isArray(_), false);
|
||||
strictEqual(_.isArray({ '0': 1, 'length': 1 }), false);
|
||||
strictEqual(_.isArray(0), false);
|
||||
strictEqual(_.isArray(1), false);
|
||||
strictEqual(_.isArray(/x/), false);
|
||||
strictEqual(_.isArray('a'), false);
|
||||
|
||||
@@ -4062,7 +4064,7 @@
|
||||
strictEqual(_.isBoolean(new Boolean(false)), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non booleans', 9, function() {
|
||||
test('should return `false` for non booleans', 10, function() {
|
||||
var expected = _.map(falsey, function(value) { return value === false; });
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -4072,9 +4074,10 @@
|
||||
strictEqual(_.isBoolean(args), false);
|
||||
strictEqual(_.isBoolean([1, 2, 3]), false);
|
||||
strictEqual(_.isBoolean(new Date), false);
|
||||
strictEqual(_.isBoolean(new Error), false);
|
||||
strictEqual(_.isBoolean(_), false);
|
||||
strictEqual(_.isBoolean({ 'a': 1 }), false);
|
||||
strictEqual(_.isBoolean(0), false);
|
||||
strictEqual(_.isBoolean(1), false);
|
||||
strictEqual(_.isBoolean(/x/), false);
|
||||
strictEqual(_.isBoolean('a'), false);
|
||||
|
||||
@@ -4102,7 +4105,7 @@
|
||||
strictEqual(_.isDate(new Date), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non dates', 9, function() {
|
||||
test('should return `false` for non dates', 10, function() {
|
||||
var expected = _.map(falsey, _.constant(false));
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -4112,9 +4115,10 @@
|
||||
strictEqual(_.isDate(args), false);
|
||||
strictEqual(_.isDate([1, 2, 3]), false);
|
||||
strictEqual(_.isDate(true), false);
|
||||
strictEqual(_.isDate(new Error), false);
|
||||
strictEqual(_.isDate(_), false);
|
||||
strictEqual(_.isDate({ 'a': 1 }), false);
|
||||
strictEqual(_.isDate(0), false);
|
||||
strictEqual(_.isDate(1), false);
|
||||
strictEqual(_.isDate(/x/), false);
|
||||
strictEqual(_.isDate('a'), false);
|
||||
|
||||
@@ -4136,6 +4140,8 @@
|
||||
QUnit.module('lodash.isElement');
|
||||
|
||||
(function() {
|
||||
var args = arguments;
|
||||
|
||||
function Element() {
|
||||
this.nodeType = 1;
|
||||
}
|
||||
@@ -4164,6 +4170,27 @@
|
||||
}
|
||||
});
|
||||
|
||||
test('should return `false` for non elements', 11, function() {
|
||||
var expected = _.map(falsey, _.constant(false));
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
return index ? _.isElement(value) : _.isElement();
|
||||
});
|
||||
|
||||
strictEqual(_.isElement(args), false);
|
||||
strictEqual(_.isElement([1, 2, 3]), false);
|
||||
strictEqual(_.isElement(true), false);
|
||||
strictEqual(_.isElement(new Date), false);
|
||||
strictEqual(_.isElement(new Error), false);
|
||||
strictEqual(_.isElement(_), false);
|
||||
strictEqual(_.isElement({ 'a': 1 }), false);
|
||||
strictEqual(_.isElement(1), false);
|
||||
strictEqual(_.isElement(/x/), false);
|
||||
strictEqual(_.isElement('a'), false);
|
||||
|
||||
deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
test('should work with elements from another realm', 1, function() {
|
||||
if (_._element) {
|
||||
strictEqual(_.isElement(_._element), true);
|
||||
@@ -4172,7 +4199,7 @@
|
||||
skipTest();
|
||||
}
|
||||
});
|
||||
}());
|
||||
}(1, 2, 3));
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
@@ -4296,7 +4323,7 @@
|
||||
var primitive,
|
||||
object = { 'toString': function() { return primitive; } },
|
||||
values = [true, null, 1, 'a', undefined],
|
||||
expected = _.map(values, function() { return false; });
|
||||
expected = _.map(values, _.constant(false));
|
||||
|
||||
var actual = _.map(values, function(value) {
|
||||
primitive = value;
|
||||
@@ -4661,7 +4688,7 @@
|
||||
actual = [];
|
||||
|
||||
_.each(falsey, function(value) {
|
||||
actual.push(_.isEqual('a', 'b', function() { return value; }));
|
||||
actual.push(_.isEqual('a', 'b', _.constant(value)));
|
||||
});
|
||||
|
||||
deepEqual(actual, expected);
|
||||
@@ -4769,6 +4796,60 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('lodash.isError');
|
||||
|
||||
(function() {
|
||||
var args = arguments;
|
||||
|
||||
test('should return `true` for error objects', 1, function() {
|
||||
var errors = [new Error, new EvalError, new RangeError, new ReferenceError, new SyntaxError, new TypeError, new URIError],
|
||||
expected = _.map(errors, _.constant(true));
|
||||
|
||||
var actual = _.map(errors, function(error) {
|
||||
return _.isError(error) === true;
|
||||
});
|
||||
|
||||
deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
test('should return `false` for non-error objects', 10, function() {
|
||||
var expected = _.map(falsey, _.constant(false));
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
return index ? _.isError(value) : _.isError();
|
||||
});
|
||||
|
||||
strictEqual(_.isError(args), false);
|
||||
strictEqual(_.isError([1, 2, 3]), false);
|
||||
strictEqual(_.isError(true), false);
|
||||
strictEqual(_.isError(new Date), false);
|
||||
strictEqual(_.isError(_), false);
|
||||
strictEqual(_.isError({ 'a': 1 }), false);
|
||||
strictEqual(_.isError(1), false);
|
||||
strictEqual(_.isError(/x/), false);
|
||||
strictEqual(_.isError('a'), false);
|
||||
|
||||
deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
test('should work with an error object from another realm', 1, function() {
|
||||
if (_._object) {
|
||||
var expected = _.map(_._errors, _.constant(true));
|
||||
|
||||
var actual = _.map(_._errors, function(error) {
|
||||
return _.isError(error) === true;
|
||||
});
|
||||
|
||||
deepEqual(actual, expected);
|
||||
}
|
||||
else {
|
||||
skipTest();
|
||||
}
|
||||
});
|
||||
}(1, 2, 3));
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('lodash.isFinite');
|
||||
|
||||
(function() {
|
||||
@@ -4786,12 +4867,13 @@
|
||||
strictEqual(_.isFinite(-Infinity), false);
|
||||
});
|
||||
|
||||
test('should return `false` for non-numeric values', 8, function() {
|
||||
test('should return `false` for non-numeric values', 9, function() {
|
||||
strictEqual(_.isFinite(null), false);
|
||||
strictEqual(_.isFinite(undefined), false);
|
||||
strictEqual(_.isFinite([]), false);
|
||||
strictEqual(_.isFinite(true), false);
|
||||
strictEqual(_.isFinite(new Date), false);
|
||||
strictEqual(_.isFinite(new Error), false);
|
||||
strictEqual(_.isFinite(''), false);
|
||||
strictEqual(_.isFinite(' '), false);
|
||||
strictEqual(_.isFinite('2px'), false);
|
||||
@@ -4824,7 +4906,7 @@
|
||||
strictEqual(_.isFunction(_), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non functions', 9, function() {
|
||||
test('should return `false` for non functions', 10, function() {
|
||||
var expected = _.map(falsey, _.constant(false));
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -4835,8 +4917,9 @@
|
||||
strictEqual(_.isFunction([1, 2, 3]), false);
|
||||
strictEqual(_.isFunction(true), false);
|
||||
strictEqual(_.isFunction(new Date), false);
|
||||
strictEqual(_.isFunction(new Error), false);
|
||||
strictEqual(_.isFunction({ 'a': 1 }), false);
|
||||
strictEqual(_.isFunction(0), false);
|
||||
strictEqual(_.isFunction(1), false);
|
||||
strictEqual(_.isFunction(/x/), false);
|
||||
strictEqual(_.isFunction('a'), false);
|
||||
|
||||
@@ -4865,7 +4948,7 @@
|
||||
strictEqual(_.isNaN(new Number(NaN)), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non NaNs', 10, function() {
|
||||
test('should return `false` for non NaNs', 11, function() {
|
||||
var expected = _.map(falsey, function(value) { return value !== value; });
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -4876,9 +4959,10 @@
|
||||
strictEqual(_.isNaN([1, 2, 3]), false);
|
||||
strictEqual(_.isNaN(true), false);
|
||||
strictEqual(_.isNaN(new Date), false);
|
||||
strictEqual(_.isNaN(new Error), false);
|
||||
strictEqual(_.isNaN(_), false);
|
||||
strictEqual(_.isNaN({ 'a': 1 }), false);
|
||||
strictEqual(_.isNaN(0), false);
|
||||
strictEqual(_.isNaN(1), false);
|
||||
strictEqual(_.isNaN(/x/), false);
|
||||
strictEqual(_.isNaN('a'), false);
|
||||
|
||||
@@ -4906,7 +4990,7 @@
|
||||
strictEqual(_.isNull(null), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non nulls', 10, function() {
|
||||
test('should return `false` for non nulls', 11, function() {
|
||||
var expected = _.map(falsey, function(value) { return value === null; });
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -4917,9 +5001,10 @@
|
||||
strictEqual(_.isNull([1, 2, 3]), false);
|
||||
strictEqual(_.isNull(true), false);
|
||||
strictEqual(_.isNull(new Date), false);
|
||||
strictEqual(_.isNull(new Error), false);
|
||||
strictEqual(_.isNull(_), false);
|
||||
strictEqual(_.isNull({ 'a': 1 }), false);
|
||||
strictEqual(_.isNull(0), false);
|
||||
strictEqual(_.isNull(1), false);
|
||||
strictEqual(_.isNull(/x/), false);
|
||||
strictEqual(_.isNull('a'), false);
|
||||
|
||||
@@ -4948,7 +5033,7 @@
|
||||
strictEqual(_.isNumber(new Number(0)), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non numbers', 9, function() {
|
||||
test('should return `false` for non numbers', 10, function() {
|
||||
var expected = _.map(falsey, function(value) { return typeof value == 'number'; });
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -4959,6 +5044,7 @@
|
||||
strictEqual(_.isNumber([1, 2, 3]), false);
|
||||
strictEqual(_.isNumber(true), false);
|
||||
strictEqual(_.isNumber(new Date), false);
|
||||
strictEqual(_.isNumber(new Error), false);
|
||||
strictEqual(_.isNumber(_), false);
|
||||
strictEqual(_.isNumber({ 'a': 1 }), false);
|
||||
strictEqual(_.isNumber(/x/), false);
|
||||
@@ -4988,11 +5074,12 @@
|
||||
(function() {
|
||||
var args = arguments;
|
||||
|
||||
test('should return `true` for objects', 10, function() {
|
||||
test('should return `true` for objects', 11, function() {
|
||||
strictEqual(_.isObject(args), true);
|
||||
strictEqual(_.isObject([1, 2, 3]), true);
|
||||
strictEqual(_.isObject(new Boolean(false)), true);
|
||||
strictEqual(_.isObject(new Date), true);
|
||||
strictEqual(_.isObject(new Error), true);
|
||||
strictEqual(_.isObject(_), true);
|
||||
strictEqual(_.isObject({ 'a': 1 }), true);
|
||||
strictEqual(_.isObject(new Number(0)), true);
|
||||
@@ -5142,7 +5229,7 @@
|
||||
strictEqual(_.isRegExp(RegExp('x')), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non regexes', 9, function() {
|
||||
test('should return `false` for non regexes', 10, function() {
|
||||
var expected = _.map(falsey, _.constant(false));
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -5153,9 +5240,10 @@
|
||||
strictEqual(_.isRegExp([1, 2, 3]), false);
|
||||
strictEqual(_.isRegExp(true), false);
|
||||
strictEqual(_.isRegExp(new Date), false);
|
||||
strictEqual(_.isRegExp(new Error), false);
|
||||
strictEqual(_.isRegExp(_), false);
|
||||
strictEqual(_.isRegExp({ 'a': 1 }), false);
|
||||
strictEqual(_.isRegExp(0), false);
|
||||
strictEqual(_.isRegExp(1), false);
|
||||
strictEqual(_.isRegExp('a'), false);
|
||||
|
||||
deepEqual(actual, expected);
|
||||
@@ -5183,7 +5271,7 @@
|
||||
strictEqual(_.isString(new String('a')), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non strings', 9, function() {
|
||||
test('should return `false` for non strings', 10, function() {
|
||||
var expected = _.map(falsey, function(value) { return value === ''; });
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
@@ -5194,9 +5282,10 @@
|
||||
strictEqual(_.isString([1, 2, 3]), false);
|
||||
strictEqual(_.isString(true), false);
|
||||
strictEqual(_.isString(new Date), false);
|
||||
strictEqual(_.isString(new Error), false);
|
||||
strictEqual(_.isString(_), false);
|
||||
strictEqual(_.isString({ '0': 1, 'length': 1 }), false);
|
||||
strictEqual(_.isString(0), false);
|
||||
strictEqual(_.isString(1), false);
|
||||
strictEqual(_.isString(/x/), false);
|
||||
|
||||
deepEqual(actual, expected);
|
||||
@@ -5224,20 +5313,21 @@
|
||||
strictEqual(_.isUndefined(undefined), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non `undefined` values', 10, function() {
|
||||
test('should return `false` for non `undefined` values', 11, function() {
|
||||
var expected = _.map(falsey, function(value) { return value === undefined; });
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
return _.isUndefined(value);
|
||||
return index ? _.isUndefined(value) : _.isUndefined();
|
||||
});
|
||||
|
||||
strictEqual(_.isUndefined(args), false);
|
||||
strictEqual(_.isUndefined([1, 2, 3]), false);
|
||||
strictEqual(_.isUndefined(true), false);
|
||||
strictEqual(_.isUndefined(new Date), false);
|
||||
strictEqual(_.isUndefined(new Error), false);
|
||||
strictEqual(_.isUndefined(_), false);
|
||||
strictEqual(_.isUndefined({ 'a': 1 }), false);
|
||||
strictEqual(_.isUndefined(0), false);
|
||||
strictEqual(_.isUndefined(1), false);
|
||||
strictEqual(_.isUndefined(/x/), false);
|
||||
strictEqual(_.isUndefined('a'), false);
|
||||
|
||||
@@ -5256,60 +5346,13 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('lodash.isError');
|
||||
|
||||
(function() {
|
||||
var args = arguments;
|
||||
|
||||
test('should return `true` for `Error` instances', 7, function() {
|
||||
strictEqual(_.isError(new Error()), true);
|
||||
strictEqual(_.isError(new EvalError()), true);
|
||||
strictEqual(_.isError(new RangeError()), true);
|
||||
strictEqual(_.isError(new ReferenceError()), true);
|
||||
strictEqual(_.isError(new SyntaxError()), true);
|
||||
strictEqual(_.isError(new TypeError()), true);
|
||||
strictEqual(_.isError(new URIError()), true);
|
||||
});
|
||||
|
||||
test('should return `false` for non `Error` instances', 10, function() {
|
||||
var expected = _.map(falsey, function(value) { return false; });
|
||||
|
||||
var actual = _.map(falsey, function(value, index) {
|
||||
return _.isError(value);
|
||||
});
|
||||
|
||||
strictEqual(_.isError(args), false);
|
||||
strictEqual(_.isError([1, 2, 3]), false);
|
||||
strictEqual(_.isError(true), false);
|
||||
strictEqual(_.isError(new Date), false);
|
||||
strictEqual(_.isError(_), false);
|
||||
strictEqual(_.isError({ 'a': 1 }), false);
|
||||
strictEqual(_.isError(0), false);
|
||||
strictEqual(_.isError(/x/), false);
|
||||
strictEqual(_.isError('a'), false);
|
||||
|
||||
deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
test('should work with an `Error` from another realm', 1, function() {
|
||||
if (_._error) {
|
||||
strictEqual(_.isError(_._error), true);
|
||||
}
|
||||
else {
|
||||
skipTest();
|
||||
}
|
||||
});
|
||||
}(1, 2, 3));
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('isType checks');
|
||||
|
||||
(function() {
|
||||
test('should return `false` for subclassed values', 8, function() {
|
||||
var funcs = [
|
||||
'isArray', 'isBoolean', 'isDate', 'isFunction',
|
||||
'isNumber', 'isRegExp', 'isString', 'isError'
|
||||
'isArray', 'isBoolean', 'isDate', 'isError',
|
||||
'isFunction', 'isNumber', 'isRegExp', 'isString'
|
||||
];
|
||||
|
||||
_.each(funcs, function(methodName) {
|
||||
@@ -6895,9 +6938,9 @@
|
||||
var array = [1, 0, 1];
|
||||
|
||||
test('should always return two groups of elements', 3, function() {
|
||||
deepEqual(_.partition([], function(value) { return value; }), [[], []]);
|
||||
deepEqual(_.partition(array, function(value) { return true; }), [array, []]);
|
||||
deepEqual(_.partition(array, function(value) { return false; }), [[], array]);
|
||||
deepEqual(_.partition([], _.identity), [[], []]);
|
||||
deepEqual(_.partition(array, _.constant(true)), [array, []]);
|
||||
deepEqual(_.partition(array, _.constant(false)), [[], array]);
|
||||
});
|
||||
|
||||
test('should use `_.identity` when no `callback` is provided', 1, function() {
|
||||
@@ -8853,7 +8896,7 @@
|
||||
|
||||
asyncTest('subsequent calls should return the result of the first call', 5, function() {
|
||||
if (!(isRhino && isModularize)) {
|
||||
var throttled = _.throttle(function(value) { return value; }, 32),
|
||||
var throttled = _.throttle(_.identity, 32),
|
||||
result = [throttled('a'), throttled('b')];
|
||||
|
||||
deepEqual(result, ['a', 'a']);
|
||||
|
||||
Reference in New Issue
Block a user