@@ -5,6 +5,18 @@ import { ruleTester } from '../rule-tester';
5
5
6
6
ruleTester ( { types : true } ) . run ( 'no-misused-observables' , noMisusedObservablesRule , {
7
7
valid : [
8
+ {
9
+ code : stripIndent `
10
+ // all checks disabled
11
+ import { of } from "rxjs";
12
+
13
+ [1, 2, 3].forEach(i => of(i));
14
+
15
+ const source = of(42);
16
+ const foo = { ...source };
17
+ ` ,
18
+ options : [ { checksVoidReturn : false , checksSpreads : false } ] ,
19
+ } ,
8
20
// #region valid; void return argument
9
21
{
10
22
code : stripIndent `
@@ -27,9 +39,9 @@ ruleTester({ types: true }).run('no-misused-observables', noMisusedObservablesRu
27
39
[1, 2, 3].forEach(i => { return i; });
28
40
29
41
class Foo {
30
- constructor(x: () => void) {}
42
+ constructor(x: () => void, y: number ) {}
31
43
}
32
- new Foo(() => 42);
44
+ new Foo(() => 42, 0 );
33
45
new Foo;
34
46
` ,
35
47
stripIndent `
@@ -61,10 +73,10 @@ ruleTester({ types: true }).run('no-misused-observables', noMisusedObservablesRu
61
73
// void return attribute; unrelated
62
74
import React, { FC } from "react";
63
75
64
- const Component: FC<{ foo: () => void }> = () => <div />;
76
+ const Component: FC<{ foo: () => void, bar: boolean }> = () => <div />;
65
77
const App = () => {
66
78
return (
67
- <Component foo={() => 42} />
79
+ <Component foo={() => 42} bar />
68
80
);
69
81
};
70
82
` ,
@@ -101,10 +113,12 @@ ruleTester({ types: true }).run('no-misused-observables', noMisusedObservablesRu
101
113
102
114
class Foo {
103
115
foo(): Observable<number> { return of(42); }
116
+ s(): void {}
104
117
}
105
118
106
119
class Bar extends Foo {
107
120
foo(): Observable<number> { return of(43); }
121
+ static s(): Observable<number> { return of(43); }
108
122
}
109
123
110
124
const Baz = class extends Foo {
@@ -152,16 +166,31 @@ ruleTester({ types: true }).run('no-misused-observables', noMisusedObservablesRu
152
166
a: () => of(42),
153
167
b,
154
168
c(): Observable<number> { return of(42); },
169
+ d(): Observable<number> { return of(42); },
155
170
};
156
171
` ,
157
172
stripIndent `
158
173
// void return property; unrelated
174
+ import { Observable, of } from "rxjs";
175
+
159
176
type Foo = { a: () => void, b: () => void, c: () => void };
160
177
const b: () => number = () => 42;
161
178
const foo: Foo = {
162
179
a: () => 42,
163
180
b,
164
- c(): number { return 42; },
181
+ ['c'](): number { return 42; },
182
+ };
183
+ const bar = {
184
+ a(): Observable<number> { return of(42); },
185
+ }
186
+ ` ,
187
+ stripIndent `
188
+ // computed property name for method declaration is not supported
189
+ import { Observable, of } from "rxjs";
190
+
191
+ type Foo = { a: () => void };
192
+ const foo: Foo = {
193
+ ['a'](): Observable<number> { return of(42); },
165
194
};
166
195
` ,
167
196
stripIndent `
@@ -203,6 +232,9 @@ ruleTester({ types: true }).run('no-misused-observables', noMisusedObservablesRu
203
232
function bar(): () => void {
204
233
return (): number => 42;
205
234
}
235
+ function baz(): () => void {
236
+ return (): void => { return; };
237
+ }
206
238
` ,
207
239
// #endregion valid; void return return value
208
240
// #region valid; void return variable
0 commit comments