diff --git a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts index d05d538d2731..aa1fb5b9b018 100644 --- a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts @@ -40,6 +40,7 @@ ruleTester.defineRule('use-every-a', { schema: [], type: 'problem', }, + name: 'use-every-a', }); /** diff --git a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts index 5f40bbcdc3cc..10014dcc66d7 100644 --- a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts @@ -32,6 +32,7 @@ ruleTester.defineRule('collect-unused-vars', { schema: [], type: 'problem', }, + name: 'collect-unused-vars', }); ruleTester.run('no-unused-vars', rule, { diff --git a/packages/rule-tester/tests/RuleTester.test.ts b/packages/rule-tester/tests/RuleTester.test.ts index 73a5a05d45cf..054986010bc9 100644 --- a/packages/rule-tester/tests/RuleTester.test.ts +++ b/packages/rule-tester/tests/RuleTester.test.ts @@ -94,6 +94,7 @@ const NOOP_RULE: RuleModule<'error'> = { schema: [], type: 'problem', }, + name: 'rule', }; function windowsToPosixPath(p: string): string { @@ -1108,6 +1109,7 @@ describe('RuleTester - hooks', () => { schema: [], type: 'problem', }, + name: 'rule', }; const ruleTester = new RuleTester(); @@ -1331,6 +1333,7 @@ describe('RuleTester - multipass fixer', () => { schema: [], type: 'problem', }, + name: 'rule', }; it('passes with no output', () => { @@ -1416,6 +1419,7 @@ describe('RuleTester - multipass fixer', () => { schema: [], type: 'problem', }, + name: 'rule', }; it('passes with correct string output', () => { @@ -1538,6 +1542,7 @@ describe('RuleTester - multipass fixer', () => { schema: [], type: 'problem', }, + name: 'rule', }; it('passes with correct array output', () => { @@ -1644,6 +1649,7 @@ describe('RuleTester - run types', () => { ], type: 'suggestion', }, + name: 'rule', }; describe('infer from `rule` parameter', () => { diff --git a/packages/rule-tester/tests/filename.test.ts b/packages/rule-tester/tests/filename.test.ts index 8f3442cf670a..943ab1894a38 100644 --- a/packages/rule-tester/tests/filename.test.ts +++ b/packages/rule-tester/tests/filename.test.ts @@ -19,6 +19,7 @@ const rule = ESLintUtils.RuleCreator.withoutDocs({ type: 'problem', hasSuggestions: true, }, + name: 'rule', defaultOptions: [], create: context => ({ Program(node): void { diff --git a/packages/utils/src/eslint-utils/RuleCreator.ts b/packages/utils/src/eslint-utils/RuleCreator.ts index cd06aee6231f..57ab282c3632 100644 --- a/packages/utils/src/eslint-utils/RuleCreator.ts +++ b/packages/utils/src/eslint-utils/RuleCreator.ts @@ -36,6 +36,7 @@ export interface RuleWithMeta< Docs = unknown, > extends RuleCreateAndOptions { meta: RuleMetaData; + name: string; } export interface RuleWithMetaAndName< @@ -76,6 +77,7 @@ export function RuleCreator( url: urlCreator(name), }, }, + name, ...rule, }); }; @@ -89,6 +91,7 @@ function createRule< create, defaultOptions, meta, + name, }: Readonly>): RuleModule< MessageIds, Options, @@ -101,6 +104,7 @@ function createRule< }, defaultOptions, meta, + name, }; } diff --git a/packages/utils/src/ts-eslint/Rule.ts b/packages/utils/src/ts-eslint/Rule.ts index 1a4920a3e79e..be28d4a0b9ec 100644 --- a/packages/utils/src/ts-eslint/Rule.ts +++ b/packages/utils/src/ts-eslint/Rule.ts @@ -735,6 +735,11 @@ export interface RuleModule< * Metadata about the rule */ meta: RuleMetaData; + + /** + * Rule name + */ + name: string; } export type AnyRuleModule = RuleModule;