diff --git a/src/rules/__tests__/no-test-prefixes.test.js b/src/rules/__tests__/no-test-prefixes.test.ts similarity index 93% rename from src/rules/__tests__/no-test-prefixes.test.js rename to src/rules/__tests__/no-test-prefixes.test.ts index c99cf269b..cb1900dcd 100644 --- a/src/rules/__tests__/no-test-prefixes.test.js +++ b/src/rules/__tests__/no-test-prefixes.test.ts @@ -1,7 +1,7 @@ -import { RuleTester } from 'eslint'; +import { TSESLint } from '@typescript-eslint/experimental-utils'; import rule from '../no-test-prefixes'; -const ruleTester = new RuleTester(); +const ruleTester = new TSESLint.RuleTester(); ruleTester.run('no-test-prefixes', rule, { valid: [ @@ -15,6 +15,7 @@ ruleTester.run('no-test-prefixes', rule, { 'it.skip("foo", function () {})', 'test.skip("foo", function () {})', 'foo()', + '[1,2,3].forEach()', ], invalid: [ { diff --git a/src/rules/no-test-prefixes.js b/src/rules/no-test-prefixes.ts similarity index 66% rename from src/rules/no-test-prefixes.js rename to src/rules/no-test-prefixes.ts index acb0bd3db..7da5bfea6 100644 --- a/src/rules/no-test-prefixes.js +++ b/src/rules/no-test-prefixes.ts @@ -1,22 +1,27 @@ -import { getDocsUrl, getNodeName, isDescribe, isTestCase } from './util'; +import { createRule, getNodeName, isDescribe, isTestCase } from './tsUtils'; -export default { +export default createRule({ + name: __filename, meta: { docs: { - url: getDocsUrl(__filename), + category: 'Best Practices', + description: 'Use `.only` and `.skip` over `f` and `x`', + recommended: 'error', }, messages: { usePreferredName: 'Use "{{ preferredNodeName }}" instead', }, fixable: 'code', schema: [], + type: 'suggestion', }, + defaultOptions: [], create(context) { return { CallExpression(node) { const nodeName = getNodeName(node.callee); - if (!isDescribe(node) && !isTestCase(node)) return; + if (!nodeName || (!isDescribe(node) && !isTestCase(node))) return; const preferredNodeName = getPreferredNodeName(nodeName); @@ -33,9 +38,9 @@ export default { }, }; }, -}; +}); -function getPreferredNodeName(nodeName) { +function getPreferredNodeName(nodeName: string) { const firstChar = nodeName.charAt(0); if (firstChar === 'f') {