/
RuleTester.ts
78 lines (71 loc) · 1.88 KB
/
RuleTester.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
import {
AST_NODE_TYPES,
AST_TOKEN_TYPES,
} from '@typescript-eslint/typescript-estree';
import { ParserOptions } from './ParserOptions';
import { RuleModule } from './Rule';
interface ValidTestCase<TOptions extends Readonly<any[]>> {
code: string;
options?: TOptions;
filename?: string;
parserOptions?: ParserOptions;
settings?: Record<string, any>;
parser?: string;
globals?: Record<string, boolean>;
env?: {
browser?: boolean;
};
}
interface InvalidTestCase<
TMessageIds extends string,
TOptions extends Readonly<any[]>
> extends ValidTestCase<TOptions> {
errors: TestCaseError<TMessageIds>[];
output?: string | null;
}
interface TestCaseError<TMessageIds extends string> {
messageId: TMessageIds;
data?: Record<string, any>;
type?: AST_NODE_TYPES | AST_TOKEN_TYPES;
line?: number;
column?: number;
endLine?: number;
endColumn?: number;
}
interface RunTests<
TMessageIds extends string,
TOptions extends Readonly<any[]>
> {
// RuleTester.run also accepts strings for valid cases
valid: (ValidTestCase<TOptions> | string)[];
invalid: InvalidTestCase<TMessageIds, TOptions>[];
}
interface RunTests<
TMessageIds extends string,
TOptions extends Readonly<any[]>
> {
// RuleTester.run also accepts strings for valid cases
valid: (ValidTestCase<TOptions> | string)[];
invalid: InvalidTestCase<TMessageIds, TOptions>[];
}
interface RuleTesterConfig {
parser: '@typescript-eslint/parser';
parserOptions?: ParserOptions;
}
interface RuleTester {
// eslint-disable-next-line @typescript-eslint/no-misused-new
new (config?: RuleTesterConfig): RuleTester;
run<TMessageIds extends string, TOptions extends Readonly<any[]>>(
name: string,
rule: RuleModule<TMessageIds, TOptions>,
tests: RunTests<TMessageIds, TOptions>,
): void;
}
export {
InvalidTestCase,
RuleTester,
RuleTesterConfig,
RunTests,
TestCaseError,
ValidTestCase,
};