Skip to content

test-loops-over-literal-cases

Disallow assertions over an inline literal case loop in a test; parameterization reports and names every case independently.

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.

Examples

Before — flagged Do not hide cases in a loop
src/parser.test.ts
test("parses", () => {
for (const value of ["a", "b"]) {
expect(parse(value)).toBe(value);
}
});
After — preferred Use a parameterized test
src/parser.test.ts
test.each(["a", "b"])("parses %s", (value) => {
expect(parse(value)).toBe(value);
});

Files

**/*.test.***/*.spec.***/tests/**