|
| 1 | +import type {ESLint} from 'eslint'; |
| 2 | +import {expectType} from 'tsd'; |
| 3 | +import formatterPretty = require('.'); |
| 4 | + |
| 5 | +// Test type exports |
| 6 | +type LintResult = formatterPretty.LintResult; |
| 7 | +type LintMessage = formatterPretty.LintMessage; |
| 8 | +type Severity = formatterPretty.Severity; |
| 9 | + |
| 10 | +// Test LintResult interface members |
| 11 | +declare const lintResult: LintResult; |
| 12 | +expectType<string>(lintResult.filePath); |
| 13 | +expectType<number>(lintResult.errorCount); |
| 14 | +expectType<number>(lintResult.warningCount); |
| 15 | +expectType<readonly LintMessage[]>(lintResult.messages); |
| 16 | + |
| 17 | +// Test LintMessage interface members |
| 18 | +const lintMessage = lintResult.messages[0]; |
| 19 | +expectType<Severity>(lintMessage.severity); |
| 20 | +expectType<string>(lintMessage.message); |
| 21 | +expectType<boolean | undefined>(lintMessage.fatal); |
| 22 | +expectType<number | undefined>(lintMessage.line); |
| 23 | +expectType<number | undefined>(lintMessage.column); |
| 24 | +expectType<string | null | undefined>(lintMessage.ruleId); |
| 25 | + |
| 26 | +// Test formatterPretty() |
| 27 | +declare const lintResults: LintResult[]; |
| 28 | +declare const eslintLintResults: ESLint.LintResult[]; |
| 29 | +declare const lintResultData: ESLint.LintResultData; |
| 30 | + |
| 31 | +expectType<string>(formatterPretty(lintResults)); |
| 32 | +expectType<string>(formatterPretty(eslintLintResults)); |
| 33 | +expectType<string>(formatterPretty(eslintLintResults, lintResultData)); |
| 34 | + |
| 35 | +interface PartialLintResult { |
| 36 | + filePath: string; |
| 37 | + errorCount: number; |
| 38 | + warningCount: number; |
| 39 | + messages: Array<{ |
| 40 | + fileName: string; |
| 41 | + message: string; |
| 42 | + severity: 'error' | 'warning'; |
| 43 | + line?: number; |
| 44 | + column?: number; |
| 45 | + }>; |
| 46 | +} |
| 47 | + |
| 48 | +declare const partialLintResults: PartialLintResult[]; |
| 49 | + |
| 50 | +expectType<string>(formatterPretty(partialLintResults)); |
0 commit comments