TypeScript · testing
test-loops-over-literal-cases
eslint:test-loops-over-literal-cases Disallow assertions over an inline literal case loop in a test; parameterization reports and names every case independently.
- Default
- error
- Fix
- none
- Languages
- typescript
Why
A loop is reported as one test, so failures hide the individual case name and may stop later cases from running.
Fix
Create one named parameterized test or runner-aware subtest for each literal case.
Before / after
Executed by this rule’s unit tests.
Before
Do not hide cases in a loop
test('parses', () => { for (const value of ['a', 'b']) { expect(parse(value)).toBe(value); } }); After
Use a parameterized test
test.each(['a', 'b'])('parses %s', (value) => { expect(parse(value)).toBe(value); }); Limits
- Only inline literal for-of cases containing framework assertions are reported.
Files
**/*.test.***/*.spec.***/tests/**Message IDs
literalCaseLoop