Requires return types on lambdas that return object literals.
npm install --save-dev eslint-plugin-test-groups
.eslintrc.yaml:
root: true
parser: "@typescript-eslint/parser"
parserOptions:
project: "./tsconfig.json"
plugins:
- "@typescript-eslint"
- "test-groups" # ← Add this
rules:
# ↓ And this:
"test-groups/require-groups-for-tests":
- error
- groupWhitelist:
- "some-test-group"
- "another-test-group"
/**
* If the 'group' attribute is not declared, then this ESLint rule will return an error.
*
* Furthermore, the 'group' attribute must match one the configured groups for the rule (you define these).
*
* @group some-test-group
*/
describe("Some Tests", () => {
})
Ensures every test is assigned to a group.
Restricting the groups to known values allows you to easily keep your CI pipelines in sync, for example, if you're running tests in parallel and need to list each group individually in your CI config.
The following resources were very useful when writing this plugin:
- Writing custom TypeScript ESLint rules: How I learned to love the AST
- AST Explorer
- Set language 'JavaScript'
- Set parser to '@typescript-eslint/parser'