@@ -23,22 +23,47 @@ tester.run("destroy-service-provider", rule, {
23
23
} ,
24
24
{
25
25
code : `
26
- @Component()
26
+ @Component({
27
+ selector: 'my-orgs',
28
+ templateUrl: './welcome.component.html',
29
+ styleUrls: ['./welcome.component.scss'],
30
+ providers: [DestroyService]
31
+ })
27
32
export class WelcomeComponent implements OnInit {
28
33
constructor(
29
- private destroy$: DestroyService,
34
+ @Inject(DestroyService) private destroy$: DestroyService,
30
35
) {}
31
36
}` ,
32
37
} ,
33
38
{
34
39
code : `
35
- @Component({})
40
+ @Component({
41
+ selector: 'my-orgs',
42
+ templateUrl: './welcome.component.html',
43
+ styleUrls: ['./welcome.component.scss'],
44
+ providers: [DestroyService]
45
+ })
36
46
export class WelcomeComponent implements OnInit {
37
47
constructor(
38
48
private destroy$: DestroyService,
39
49
) {}
40
50
}` ,
41
51
} ,
52
+ {
53
+ code : `
54
+ @Component({
55
+ selector: 'my-orgs',
56
+ templateUrl: './welcome.component.html',
57
+ styleUrls: ['./welcome.component.scss'],
58
+ providers: [Destroy]
59
+ })
60
+ export class WelcomeComponent implements OnInit {
61
+ constructor(
62
+ private destroy$: Destroy,
63
+ ) {}
64
+ }` ,
65
+ options : [ { destroyServiceName : "Destroy" } ] ,
66
+ } ,
42
67
{
43
68
code : `
44
69
@Directive({
@@ -51,6 +76,53 @@ tester.run("destroy-service-provider", rule, {
51
76
) {}
52
77
}` ,
53
78
} ,
79
+ {
80
+ code : `
81
+ @Directive({
82
+ selector: 'my-directive',
83
+ providers: [Destroy]
84
+ })
85
+ export class MyDirective implements OnInit {
86
+ constructor(
87
+ private destroy$: Destroy,
88
+ ) {}
89
+ }` ,
90
+ options : [ { destroyServiceName : "Destroy" } ] ,
91
+ } ,
92
+ // developer forgot to config custom DestroyService name to `Destroy`
93
+ // so the rule doesn't recognize `Destroy` is a DestroyService
94
+ {
95
+ code : `
96
+ @Directive({
97
+ selector: 'my-directive',
98
+ providers: []
99
+ })
100
+ export class MyDirective implements OnInit {
101
+ constructor(
102
+ private destroy$: Destroy,
103
+ ) {}
104
+ }` ,
105
+ } ,
106
+ // test cases below will verify when syntax of Component/Directive is invalid
107
+ // the rule won't check until Component/Directive syntax error is fixed
108
+ {
109
+ code : `
110
+ @Component()
111
+ export class WelcomeComponent implements OnInit {
112
+ constructor(
113
+ private destroy$: DestroyService,
114
+ ) {}
115
+ }` ,
116
+ } ,
117
+ {
118
+ code : `
119
+ @Component({})
120
+ export class WelcomeComponent implements OnInit {
121
+ constructor(
122
+ private destroy$: DestroyService,
123
+ ) {}
124
+ }` ,
125
+ } ,
54
126
{
55
127
code : `
56
128
@Directive()
@@ -89,6 +161,97 @@ tester.run("destroy-service-provider", rule, {
89
161
messageId : "missing" ,
90
162
data : {
91
163
className : "Component" ,
164
+ destroyServiceName : "DestroyService" ,
165
+ } ,
166
+ } ,
167
+ ] ,
168
+ } ,
169
+ {
170
+ code : `
171
+ @Component({
172
+ selector: 'my-orgs',
173
+ templateUrl: './welcome.component.html',
174
+ styleUrls: ['./welcome.component.scss'],
175
+ })
176
+ export class WelcomeComponent implements OnInit {
177
+ constructor(
178
+ private destroy$: DestroyService,
179
+ ) {}
180
+ }` ,
181
+ errors : [
182
+ {
183
+ messageId : "missing" ,
184
+ data : {
185
+ className : "Component" ,
186
+ destroyServiceName : "DestroyService" ,
187
+ } ,
188
+ } ,
189
+ ] ,
190
+ } ,
191
+ {
192
+ code : `
193
+ @Component({
194
+ selector: 'my-orgs',
195
+ templateUrl: './welcome.component.html',
196
+ styleUrls: ['./welcome.component.scss'],
197
+ providers: []
198
+ })
199
+ export class WelcomeComponent implements OnInit {
200
+ constructor(
201
+ private destroy$: Destroy,
202
+ ) {}
203
+ }` ,
204
+ options : [ { destroyServiceName : "Destroy" } ] ,
205
+ errors : [
206
+ {
207
+ messageId : "missing" ,
208
+ data : {
209
+ className : "Component" ,
210
+ destroyServiceName : "Destroy" ,
211
+ } ,
212
+ } ,
213
+ ] ,
214
+ } ,
215
+ {
216
+ code : `
217
+ @Component({
218
+ selector: 'my-orgs',
219
+ templateUrl: './welcome.component.html',
220
+ styleUrls: ['./welcome.component.scss'],
221
+ })
222
+ export class WelcomeComponent implements OnInit {
223
+ constructor(
224
+ private destroy$: Destroy,
225
+ ) {}
226
+ }` ,
227
+ options : [ { destroyServiceName : "Destroy" } ] ,
228
+ errors : [
229
+ {
230
+ messageId : "missing" ,
231
+ data : {
232
+ className : "Component" ,
233
+ destroyServiceName : "Destroy" ,
234
+ } ,
235
+ } ,
236
+ ] ,
237
+ } ,
238
+ {
239
+ code : `
240
+ @Directive({
241
+ selector: 'my-directive',
242
+ providers: [],
243
+ })
244
+ export class MyDirective implements OnInit {
245
+ constructor(
246
+ private destroy$: DestroyService,
247
+ ) {}
248
+ }` ,
249
+ errors : [
250
+ {
251
+ messageId : "missing" ,
252
+ data : {
253
+ className : "Directive" ,
254
+ destroyServiceName : "DestroyService" ,
92
255
} ,
93
256
} ,
94
257
] ,
@@ -108,6 +271,29 @@ tester.run("destroy-service-provider", rule, {
108
271
messageId : "missing" ,
109
272
data : {
110
273
className : "Directive" ,
274
+ destroyServiceName : "DestroyService" ,
275
+ } ,
276
+ } ,
277
+ ] ,
278
+ } ,
279
+ {
280
+ code : `
281
+ @Directive({
282
+ selector: 'my-directive',
283
+ providers: []
284
+ })
285
+ export class MyDirective implements OnInit {
286
+ constructor(
287
+ private destroy$: Destroy,
288
+ ) {}
289
+ }` ,
290
+ options : [ { destroyServiceName : "Destroy" } ] ,
291
+ errors : [
292
+ {
293
+ messageId : "missing" ,
294
+ data : {
295
+ className : "Directive" ,
296
+ destroyServiceName : "Destroy" ,
111
297
} ,
112
298
} ,
113
299
] ,
@@ -128,6 +314,7 @@ tester.run("destroy-service-provider", rule, {
128
314
messageId : "missing" ,
129
315
data : {
130
316
className : "Directive" ,
317
+ destroyServiceName : "Destroy" ,
131
318
} ,
132
319
} ,
133
320
] ,
0 commit comments