diff --git a/docs/rules/no-focused-tests.md b/docs/rules/no-focused-tests.md index c116f4994..93923887e 100644 --- a/docs/rules/no-focused-tests.md +++ b/docs/rules/no-focused-tests.md @@ -32,6 +32,12 @@ test['only']('bar', () => {}); fdescribe('foo', () => {}); fit('foo', () => {}); ftest('bar', () => {}); +fit.each` + table +`(); +ftest.each` + table +`(); ``` These patterns would not be considered warnings: @@ -43,4 +49,12 @@ describe.skip('bar', () => {}); it.skip('bar', () => {}); test('foo', () => {}); test.skip('bar', () => {}); +it.each()(); +it.each` + table +`(); +test.each()(); +test.each` + table +`(); ``` diff --git a/src/rules/__tests__/no-focused-tests.test.ts b/src/rules/__tests__/no-focused-tests.test.ts index d97be69df..e76b9738e 100644 --- a/src/rules/__tests__/no-focused-tests.test.ts +++ b/src/rules/__tests__/no-focused-tests.test.ts @@ -1,7 +1,13 @@ import { TSESLint } from '@typescript-eslint/experimental-utils'; +import resolveFrom from 'resolve-from'; import rule from '../no-focused-tests'; -const ruleTester = new TSESLint.RuleTester(); +const ruleTester = new TSESLint.RuleTester({ + parser: resolveFrom(require.resolve('eslint'), 'espree'), + parserOptions: { + ecmaVersion: 6, + }, +}); ruleTester.run('no-focused-tests', rule, { valid: [ @@ -13,6 +19,10 @@ ruleTester.run('no-focused-tests', rule, { 'test.skip()', 'var appliedOnly = describe.only; appliedOnly.apply(describe)', 'var calledOnly = it.only; calledOnly.call(it)', + 'it.each()()', + 'it.each`table`()', + 'test.each()()', + 'test.each`table`()', ], invalid: [ @@ -64,5 +74,13 @@ ruleTester.run('no-focused-tests', rule, { code: 'fit.each()', errors: [{ messageId: 'focusedTest', column: 1, line: 1 }], }, + { + code: 'fit.each`table`()', + errors: [{ messageId: 'focusedTest', column: 1, line: 1 }], + }, + { + code: 'ftest.each`table`()', + errors: [{ messageId: 'focusedTest', column: 1, line: 1 }], + }, ], }); diff --git a/src/rules/no-focused-tests.ts b/src/rules/no-focused-tests.ts index f1d353768..0ab3837c0 100644 --- a/src/rules/no-focused-tests.ts +++ b/src/rules/no-focused-tests.ts @@ -78,6 +78,16 @@ export default createRule({ ) { context.report({ messageId: 'focusedTest', node: callee }); } + + if ( + callee.type === AST_NODE_TYPES.TaggedTemplateExpression && + callee.tag.type === AST_NODE_TYPES.MemberExpression && + callee.tag.object && + callee.tag.object.type === AST_NODE_TYPES.Identifier && + isCallToFocusedTestFunction(callee.tag.object) + ) { + context.report({ messageId: 'focusedTest', node: callee }); + } }, }), });