/
no-dupe-class-members.test.ts
79 lines (77 loc) · 2.26 KB
/
no-dupe-class-members.test.ts
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
70
71
72
73
74
75
76
77
78
79
import rule from '../../src/rules/no-dupe-class-members';
import { RuleTester } from '../RuleTester';
const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
});
ruleTester.run('no-dupe-class-members', rule, {
valid: [
'class A { foo() {} bar() {} }',
'class A { static foo() {} foo() {} }',
'class A { get foo() {} set foo(value) {} }',
'class A { static foo() {} get foo() {} set foo(value) {} }',
'class A { foo() { } } class B { foo() { } }',
'class A { [foo]() {} foo() {} }',
"class A { 'foo'() {} 'bar'() {} baz() {} }",
"class A { *'foo'() {} *'bar'() {} *baz() {} }",
"class A { get 'foo'() {} get 'bar'() {} get baz() {} }",
'class A { 1() {} 2() {} }',
`
class Foo {
foo(a: string): string;
foo(a: number): number;
foo(a: any): any {}
}
`,
],
invalid: [
{
code: 'class A { foo() {} foo() {} }',
errors: [
{ line: 1, column: 20, messageId: 'unexpected', data: { name: 'foo' } },
],
},
{
code: '!class A { foo() {} foo() {} };',
errors: [
{ line: 1, column: 21, messageId: 'unexpected', data: { name: 'foo' } },
],
},
{
code: "class A { 'foo'() {} 'foo'() {} }",
errors: [
{ line: 1, column: 22, messageId: 'unexpected', data: { name: 'foo' } },
],
},
{
code: 'class A { 10() {} 1e1() {} }',
errors: [
{ line: 1, column: 19, messageId: 'unexpected', data: { name: '10' } },
],
},
{
code: 'class A { foo() {} foo() {} foo() {} }',
errors: [
{ line: 1, column: 20, messageId: 'unexpected', data: { name: 'foo' } },
{ line: 1, column: 29, messageId: 'unexpected', data: { name: 'foo' } },
],
},
{
code: 'class A { static foo() {} static foo() {} }',
errors: [
{ line: 1, column: 27, messageId: 'unexpected', data: { name: 'foo' } },
],
},
{
code: 'class A { foo() {} get foo() {} }',
errors: [
{ line: 1, column: 20, messageId: 'unexpected', data: { name: 'foo' } },
],
},
{
code: 'class A { set foo(value) {} foo() {} }',
errors: [
{ line: 1, column: 29, messageId: 'unexpected', data: { name: 'foo' } },
],
},
],
});