Files
lodash/test/isType-checks.spec.ts
2023-09-16 16:18:43 -07:00

70 lines
1.8 KiB
TypeScript

import assert from 'node:assert';
import lodashStable from 'lodash';
import { objToString, objectTag, _, xml } from './utils';
describe('isType checks', () => {
it('should return `false` for subclassed values', () => {
const funcs = [
'isArray',
'isBoolean',
'isDate',
'isFunction',
'isNumber',
'isRegExp',
'isString',
];
lodashStable.each(funcs, (methodName) => {
function Foo() {}
Foo.prototype = root[methodName.slice(2)].prototype;
const object = new Foo();
if (objToString.call(object) === objectTag) {
assert.strictEqual(
_[methodName](object),
false,
`\`_.${methodName}\` returns \`false\``,
);
}
});
});
it('should not error on host objects (test in IE)', () => {
const funcs = [
'isArguments',
'isArray',
'isArrayBuffer',
'isArrayLike',
'isBoolean',
'isBuffer',
'isDate',
'isElement',
'isError',
'isFinite',
'isFunction',
'isInteger',
'isMap',
'isNaN',
'isNil',
'isNull',
'isNumber',
'isObject',
'isObjectLike',
'isRegExp',
'isSet',
'isSafeInteger',
'isString',
'isUndefined',
'isWeakMap',
'isWeakSet',
];
lodashStable.each(funcs, (methodName) => {
if (xml) {
_[methodName](xml);
assert.ok(true, `\`_.${methodName}\` should not error`);
}
});
});
});