/
no-object-as-default.js
69 lines (66 loc) · 1.62 KB
/
no-object-as-default.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 test from 'ava';
import avaRuleTester from 'eslint-ava-rule-tester';
import rule from '../rules/no-object-as-default';
const ruleTester = avaRuleTester(test, {
env: {
es6: true
}
});
const error = {
messageId: 'noObjectAsDefault',
data: {parameter: 'foo'}
};
ruleTester.run('no-object-as-default', rule, {
valid: [
'const abc = {};',
'const abc = {foo: 123};',
'function abc(foo) {}',
'function abc(foo = null) {}',
'function abc(foo = undefined) {}',
'function abc(foo = 123) {}',
'function abc(foo = true) {}',
'function abc(foo = \'bar\') {}',
'function abc(foo = 123, bar = \'foo\') {}',
'function abc(foo = {}) {}',
'function abc({foo = 123} = {}) {}',
'const abc = foo => {};',
'const abc = (foo = null) => {};',
'const abc = (foo = undefined) => {};',
'const abc = (foo = 123) => {};',
'const abc = (foo = true) => {};',
'const abc = (foo = \'bar\') => {};',
'const abc = (foo = 123, bar = \'foo\') => {};',
'const abc = (foo = {}) => {};',
'const abc = ({a = true, b = \'foo\'}) => {};'
],
invalid: [
{
code: 'function abc(foo = {a: 123}) {}',
errors: [error]
},
{
code: 'function abc(foo = {a: false}) {}',
errors: [error]
},
{
code: 'function abc(foo = {a: \'bar\'}) {}',
errors: [error]
},
{
code: 'function abc(foo = {a: \'bar\', b: {c: true}}) {}',
errors: [error]
},
{
code: 'const abc = (foo = {a: false}) => {};',
errors: [error]
},
{
code: 'const abc = (foo = {a: 123, b: false}) => {};',
errors: [error]
},
{
code: 'const abc = (foo = {a: false, b: 1, c: "test", d: null}) => {};',
errors: [error]
}
]
});