forked from mgechev/codelyzer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcomponentClassSuffixRule.spec.ts
More file actions
152 lines (141 loc) · 4.96 KB
/
componentClassSuffixRule.spec.ts
File metadata and controls
152 lines (141 loc) · 4.96 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
import {assertFailure, assertSuccess} from './testHelper';
describe('component-class-suffix', () => {
describe('invalid component class suffix', () => {
it('should fail when component class is with the wrong suffix', () => {
let source = `
@Component({
selector: 'sg-foo-bar'
})
class Test {}`;
assertFailure('component-class-suffix', source, {
message: 'The name of the class Test should end with the suffix Component ($$02-03$$)',
startPosition: {
line: 4,
character: 20
},
endPosition: {
line: 4,
character: 24
}
});
});
});
describe('valid component class name', () => {
it('should succeed when the component class name ends with Component', () => {
let source = `
@Component({
selector: 'sg-foo-bar',
template: '<foo-bar [foo]="bar">{{baz + 42}}</foo-bar>'
})
class TestComponent {}`;
assertSuccess('component-class-suffix', source);
});
});
describe('valid directive class', () => {
it('should succeed when is used @Directive decorator', () => {
let source = `
@Directive({
selector: '[myHighlight]'
})
class TestDirective {}`;
assertSuccess('component-class-suffix', source);
});
});
describe('valid pipe class', () => {
it('should succeed when is used @Pipe decorator', () => {
let source = `
@Pipe({
selector: 'sg-test-pipe'
})
class TestPipe {}`;
assertSuccess('component-class-suffix', source);
});
});
describe('valid service class', () => {
it('should succeed when is used @Injectable decorator', () => {
let source = `
@Injectable()
class TestService {}`;
assertSuccess('component-class-suffix', source);
});
});
describe('valid empty class', () => {
it('should succeed when the class is empty', () => {
let source = `
class TestEmpty {}`;
assertSuccess('component-class-suffix', source);
});
});
describe('changed suffix', () => {
it('should succeed when different suffix is set', () => {
let source = `
@Component({
selector: 'sgBarFoo'
})
class TestPage {}`;
assertSuccess('component-class-suffix', source, ['Page']);
});
it('should succeed when different list of suffix is set', () => {
let source = `
@Component({
selector: 'sgBarFoo'
})
class TestPage {}`;
assertSuccess('component-class-suffix', source, ['Page', 'View']);
});
it('should fail when different list of suffix is set and doesnt match', function () {
let source = `
@Component({
selector: 'sgBarFoo'
})
class TestPage {}`;
assertFailure('component-class-suffix', source, {
message: 'The name of the class TestPage should end with the suffix Component,View ($$02-03$$)',
startPosition: {
line: 4,
character: 18
},
endPosition: {
line: 4,
character: 26
}
}, ['Component', 'View']);
});
it('should fail when different sufix is set and doesnt match', () => {
let source = `
@Component({
selector: 'sgBarFoo'
})
class TestPage {}`;
assertFailure('component-class-suffix', source, {
message: 'The name of the class TestPage should end with the suffix Component ($$02-03$$)',
startPosition: {
line: 4,
character: 18
},
endPosition: {
line: 4,
character: 26
}
}, ['Component']);
});
it('should fail when different sufix is set and doesnt match', () => {
let source = `
@Component({
selector: 'sgBarFoo'
})
class TestDirective {}`;
assertFailure('component-class-suffix', source, {
message: 'The name of the class TestDirective should end with the suffix Page ($$02-03$$)',
startPosition: {
line: 4,
character: 18
},
endPosition: {
line: 4,
character: 31
}
}, ['Page']);
});
});
});