/
no-array-instanceof.js
60 lines (57 loc) · 1.15 KB
/
no-array-instanceof.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
import test from 'ava';
import avaRuleTester from 'eslint-ava-rule-tester';
import rule from '../rules/no-array-instanceof';
const ruleTester = avaRuleTester(test, {
env: {
es6: true
}
});
const errors = [
{
message: 'Use `Array.isArray()` instead of `instanceof Array`.'
}
];
ruleTester.run('avoid-array-instanceof', rule, {
valid: [
'Array.isArray(arr)',
'arr instanceof Object',
'arr instanceof array',
'a instanceof \'array\'',
'a instanceof ArrayA',
'a.x[2] instanceof foo()',
'Array.isArray([1,2,3]) === true',
'"arr instanceof Array"'
],
invalid: [
{
code: 'arr instanceof Array',
output: 'Array.isArray(arr)',
errors
},
{
code: '[] instanceof Array',
output: 'Array.isArray([])',
errors
},
{
code: '[1,2,3] instanceof Array === true',
output: 'Array.isArray([1,2,3]) === true',
errors
},
{
code: 'fun.call(1, 2, 3) instanceof Array',
output: 'Array.isArray(fun.call(1, 2, 3))',
errors
},
{
code: 'obj.arr instanceof Array',
output: 'Array.isArray(obj.arr)',
errors
},
{
code: 'foo.bar[2] instanceof Array',
output: 'Array.isArray(foo.bar[2])',
errors
}
]
});