-
Notifications
You must be signed in to change notification settings - Fork 7k
/
isType-checks.spec.js
69 lines (64 loc) · 1.79 KB
/
isType-checks.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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',
'isWeakRef',
];
lodashStable.each(funcs, (methodName) => {
if (xml) {
_[methodName](xml);
expect(true, `\`_.${methodName}\` should not error`);
}
});
});
});