diff --git a/scripts/chain-permutations.ts b/scripts/chain-permutations.ts index 20aaf5ed..efe9aa3e 100644 --- a/scripts/chain-permutations.ts +++ b/scripts/chain-permutations.ts @@ -21,7 +21,7 @@ const data = [ first: ['extend'], conditions: ['skipIf', 'runIf'], methods: ['skip', 'only', 'concurrent', 'sequential', 'todo', 'fails'], - last: ['each'], + last: ['each', 'for'], }, { names: ['bench'], diff --git a/src/utils/valid-vitest-fn-call-chains.ts b/src/utils/valid-vitest-fn-call-chains.ts index 4e41c9a1..97cf399d 100644 --- a/src/utils/valid-vitest-fn-call-chains.ts +++ b/src/utils/valid-vitest-fn-call-chains.ts @@ -14,6 +14,7 @@ export const ValidVitestFnCallChains = new Set([ 'it.skipIf', 'it.runIf', 'it.each', + 'it.for', 'it.skip.only', 'it.skip.concurrent', 'it.skip.sequential', @@ -68,11 +69,20 @@ export const ValidVitestFnCallChains = new Set([ 'it.sequential.each', 'it.todo.each', 'it.fails.each', + 'it.skip.for', + 'it.only.for', + 'it.concurrent.for', + 'it.sequential.for', + 'it.todo.for', + 'it.fails.for', 'it.extend.skipIf', 'it.extend.runIf', 'it.extend.each', + 'it.extend.for', 'it.skipIf.each', + 'it.skipIf.for', 'it.runIf.each', + 'it.runIf.for', 'it.skip.only.concurrent', 'it.skip.only.sequential', 'it.skip.only.todo', @@ -313,6 +323,36 @@ export const ValidVitestFnCallChains = new Set([ 'it.fails.concurrent.each', 'it.fails.sequential.each', 'it.fails.todo.each', + 'it.skip.only.for', + 'it.skip.concurrent.for', + 'it.skip.sequential.for', + 'it.skip.todo.for', + 'it.skip.fails.for', + 'it.only.skip.for', + 'it.only.concurrent.for', + 'it.only.sequential.for', + 'it.only.todo.for', + 'it.only.fails.for', + 'it.concurrent.skip.for', + 'it.concurrent.only.for', + 'it.concurrent.sequential.for', + 'it.concurrent.todo.for', + 'it.concurrent.fails.for', + 'it.sequential.skip.for', + 'it.sequential.only.for', + 'it.sequential.concurrent.for', + 'it.sequential.todo.for', + 'it.sequential.fails.for', + 'it.todo.skip.for', + 'it.todo.only.for', + 'it.todo.concurrent.for', + 'it.todo.sequential.for', + 'it.todo.fails.for', + 'it.fails.skip.for', + 'it.fails.only.for', + 'it.fails.concurrent.for', + 'it.fails.sequential.for', + 'it.fails.todo.for', 'it.extend.skipIf.skip', 'it.extend.skipIf.only', 'it.extend.skipIf.concurrent', @@ -331,20 +371,40 @@ export const ValidVitestFnCallChains = new Set([ 'it.extend.sequential.each', 'it.extend.todo.each', 'it.extend.fails.each', + 'it.extend.skip.for', + 'it.extend.only.for', + 'it.extend.concurrent.for', + 'it.extend.sequential.for', + 'it.extend.todo.for', + 'it.extend.fails.for', 'it.skipIf.skip.each', 'it.skipIf.only.each', 'it.skipIf.concurrent.each', 'it.skipIf.sequential.each', 'it.skipIf.todo.each', 'it.skipIf.fails.each', + 'it.skipIf.skip.for', + 'it.skipIf.only.for', + 'it.skipIf.concurrent.for', + 'it.skipIf.sequential.for', + 'it.skipIf.todo.for', + 'it.skipIf.fails.for', 'it.runIf.skip.each', 'it.runIf.only.each', 'it.runIf.concurrent.each', 'it.runIf.sequential.each', 'it.runIf.todo.each', 'it.runIf.fails.each', + 'it.runIf.skip.for', + 'it.runIf.only.for', + 'it.runIf.concurrent.for', + 'it.runIf.sequential.for', + 'it.runIf.todo.for', + 'it.runIf.fails.for', 'it.extend.skipIf.each', + 'it.extend.skipIf.for', 'it.extend.runIf.each', + 'it.extend.runIf.for', 'test', 'test.skip', 'test.only', @@ -356,6 +416,7 @@ export const ValidVitestFnCallChains = new Set([ 'test.skipIf', 'test.runIf', 'test.each', + 'test.for', 'test.skip.only', 'test.skip.concurrent', 'test.skip.sequential', @@ -410,11 +471,20 @@ export const ValidVitestFnCallChains = new Set([ 'test.sequential.each', 'test.todo.each', 'test.fails.each', + 'test.skip.for', + 'test.only.for', + 'test.concurrent.for', + 'test.sequential.for', + 'test.todo.for', + 'test.fails.for', 'test.extend.skipIf', 'test.extend.runIf', 'test.extend.each', + 'test.extend.for', 'test.skipIf.each', + 'test.skipIf.for', 'test.runIf.each', + 'test.runIf.for', 'test.skip.only.concurrent', 'test.skip.only.sequential', 'test.skip.only.todo', @@ -655,6 +725,36 @@ export const ValidVitestFnCallChains = new Set([ 'test.fails.concurrent.each', 'test.fails.sequential.each', 'test.fails.todo.each', + 'test.skip.only.for', + 'test.skip.concurrent.for', + 'test.skip.sequential.for', + 'test.skip.todo.for', + 'test.skip.fails.for', + 'test.only.skip.for', + 'test.only.concurrent.for', + 'test.only.sequential.for', + 'test.only.todo.for', + 'test.only.fails.for', + 'test.concurrent.skip.for', + 'test.concurrent.only.for', + 'test.concurrent.sequential.for', + 'test.concurrent.todo.for', + 'test.concurrent.fails.for', + 'test.sequential.skip.for', + 'test.sequential.only.for', + 'test.sequential.concurrent.for', + 'test.sequential.todo.for', + 'test.sequential.fails.for', + 'test.todo.skip.for', + 'test.todo.only.for', + 'test.todo.concurrent.for', + 'test.todo.sequential.for', + 'test.todo.fails.for', + 'test.fails.skip.for', + 'test.fails.only.for', + 'test.fails.concurrent.for', + 'test.fails.sequential.for', + 'test.fails.todo.for', 'test.extend.skipIf.skip', 'test.extend.skipIf.only', 'test.extend.skipIf.concurrent', @@ -673,20 +773,40 @@ export const ValidVitestFnCallChains = new Set([ 'test.extend.sequential.each', 'test.extend.todo.each', 'test.extend.fails.each', + 'test.extend.skip.for', + 'test.extend.only.for', + 'test.extend.concurrent.for', + 'test.extend.sequential.for', + 'test.extend.todo.for', + 'test.extend.fails.for', 'test.skipIf.skip.each', 'test.skipIf.only.each', 'test.skipIf.concurrent.each', 'test.skipIf.sequential.each', 'test.skipIf.todo.each', 'test.skipIf.fails.each', + 'test.skipIf.skip.for', + 'test.skipIf.only.for', + 'test.skipIf.concurrent.for', + 'test.skipIf.sequential.for', + 'test.skipIf.todo.for', + 'test.skipIf.fails.for', 'test.runIf.skip.each', 'test.runIf.only.each', 'test.runIf.concurrent.each', 'test.runIf.sequential.each', 'test.runIf.todo.each', 'test.runIf.fails.each', + 'test.runIf.skip.for', + 'test.runIf.only.for', + 'test.runIf.concurrent.for', + 'test.runIf.sequential.for', + 'test.runIf.todo.for', + 'test.runIf.fails.for', 'test.extend.skipIf.each', + 'test.extend.skipIf.for', 'test.extend.runIf.each', + 'test.extend.runIf.for', 'bench', 'bench.skip', 'bench.only', diff --git a/tests/no-standalone-expect.test.ts b/tests/no-standalone-expect.test.ts index d18887d1..a0caf6db 100644 --- a/tests/no-standalone-expect.test.ts +++ b/tests/no-standalone-expect.test.ts @@ -25,6 +25,14 @@ ruleTester.run(RULE_NAME, rule, { '{}', 'it.each([1, true])("trues", value => { expect(value).toBe(true); });', 'it.each([1, true])("trues", value => { expect(value).toBe(true); }); it("an it", () => { expect(1).toBe(1) });', + ` + it.for(["a", "b"])("test", (value, { expect }) => { + expect(value).toBe(true) + }) + test.for(["a", "b"])("test", (value, { expect }) => { + expect(value).toBe(true) + }) + `, ], invalid: [ {