eslint-plugin-exception-handling
Version:
💣 Lints unhandled functions that might throw errors. For JavaScript/TypeScript eslint.
29 lines (28 loc) • 1.12 kB
JavaScript
import { ESLint } from "eslint";
import { describe, expect, it } from "vitest";
export function testFile(filename, rules, errors) {
const lint = new ESLint({ overrideConfigFile: "eslint.config.test.js" });
const expectLints = errors.reduce((acc, error) => {
if (!error.messageId)
return acc;
if (!acc[error.messageId])
acc[error.messageId] = 0;
acc[error.messageId]++;
return acc;
}, {});
const expectedLintsString = Object.entries(expectLints)
.map(([k, v]) => `${v} '${k}'`)
.join(", ") || "no error";
describe(filename, () => {
it(`should lint ${expectedLintsString}`, async () => {
const res = await lint.lintFiles([filename]);
const messages = res[0].messages.filter((m) => m.ruleId && rules.includes(m.ruleId.split("/").at(-1)));
expect(messages).toEqual(errors.map((lint) => {
return expect.objectContaining(lint);
}));
if (errors.length === 0) {
expect(messages).toStrictEqual([]);
}
});
});
}