eslint-plugin-eslint-plugin
eslint-plugin-eslint-plugin copied to clipboard
Add a rule to enforce test code cases are auto-formatted
Coming over from @bradzacher's typescript-eslint Discord comment about RuleTester usage around suggestions -> https://github.com/typescript-eslint/typescript-eslint/issues/9639: typescript-eslint has an internal lint rule for test formatting which enforces things like "a template string must be either indented 0 or indented template indent + 2" and "all cases must be prettier formatted". This is really useful for keeping rule test code clean and readable.
Incorrect:
ruleTester.run("my-rule", {
invalid: [ /* ... */ ],
valid: [
`console.log ( "some code" ) `
],
});
Correct:
ruleTester.run("my-rule", {
invalid: [ /* ... */ ],
valid: [
`console.log("some code");`
],
});
Rule source: https://github.com/typescript-eslint/typescript-eslint/blob/eb76e34876ea973c462fad7073c134652f83c41b/packages/eslint-plugin-internal/src/rules/plugin-test-formatting.ts
This also isn't really specific to typescript-eslint. I could see a use case for any arbitrary plugin to want it.
Proposal: would you be interested in taking this rule into eslint-plugin-eslint-plugin?
Sorry to bother you @aladdin-add, but is this something you have bandwidth to triage?
Context: I'm interested in implementing this to close out https://github.com/typescript-eslint/typescript-eslint/issues/9639. I'd be happy to send a PR here if the project would accept it.
sounds useful; I'm just a little concerned about whether it should depend on prettier - not all the projects using it. maybe can be configured settings:
import prettier from "prettier";
export default [{
settings: {"eslint-plugin": {formatter: prettier}}
}];