-
Notifications
You must be signed in to change notification settings - Fork 234
/
noOutputOnPrefixRule.spec.ts
82 lines (76 loc) · 2.58 KB
/
noOutputOnPrefixRule.spec.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
80
81
82
import { assertSuccess, assertAnnotated } from './testHelper';
describe('no-output-on-prefix', () => {
describe('invalid directive output property', () => {
it('should fail, when a component output property is named with on prefix', () => {
const source = `
@Component()
class ButtonComponent {
@Output() onChange = new EventEmitter<any>();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
`;
assertAnnotated({
ruleName: 'no-output-on-prefix',
message: 'In the class "ButtonComponent", the output property "onChange" should not be prefixed with on',
source
});
});
it('should fail, when a directive output property is named with on prefix', () => {
const source = `
@Directive()
class ButtonDirective {
@Output() onChange = new EventEmitter<any>();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
`;
assertAnnotated({
ruleName: 'no-output-on-prefix',
message: 'In the class "ButtonDirective", the output property "onChange" should not be prefixed with on',
source
});
});
it('should fail, when a directive output property is named with on prefix', () => {
const source = `
@Directive()
class ButtonDirective {
@Output() on = new EventEmitter<any>();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
`;
assertAnnotated({
ruleName: 'no-output-on-prefix',
message: 'In the class "ButtonDirective", the output property "on" should not be prefixed with on',
source
});
});
});
describe('valid directive output property', () => {
it('should succeed, when a directive output property is properly named', () => {
const source = `
@Component()
class ButtonComponent {
@Output() change = new EventEmitter<any>();
}
`;
assertSuccess('no-output-on-prefix', source);
});
it("should succeed, when a directive output property is properly named, starting with 'on'", () => {
const source = `
@Component()
class ButtonComponent {
@Output() oneProp = new EventEmitter<any>();
}
`;
assertSuccess('no-output-on-prefix', source);
});
it("should succeed, when an output property containing 'on' suffix", () => {
const source = `
@Component()
class SelectComponent {
@Output() selectionChanged = new EventEmitter<any>();
}
`;
assertSuccess('no-output-on-prefix', source);
});
});
});