diff --git a/.eslintrc.js b/.eslintrc.js index 4d2673c632c..f3f97eebf54 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -15,6 +15,7 @@ module.exports = { }, extends: [ 'eslint:recommended', + 'plugin:eslint-plugin/recommended', 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/recommended-requiring-type-checking', ], @@ -194,7 +195,7 @@ module.exports = { '@typescript-eslint/no-unsafe-call': 'off', '@typescript-eslint/no-unsafe-member-access': 'off', '@typescript-eslint/no-unsafe-return': 'off', - 'eslint-plugin/no-identical-tests': 'error', + 'eslint-plugin/consistent-output': 'off', // Might eventually be removed from `eslint-plugin/recommended`: https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/284 'jest/no-disabled-tests': 'warn', 'jest/no-focused-tests': 'error', 'jest/no-alias-methods': 'error', diff --git a/packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts b/packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts index 456a17f7da1..108d7bfe0a2 100644 --- a/packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts +++ b/packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts @@ -35,7 +35,6 @@ export default createRule({ description: "Enforces rules don't use TS API properties with known bad type definitions", recommended: 'error', - suggestion: true, requiresTypeChecking: true, }, fixable: 'code', diff --git a/packages/eslint-plugin/src/rules/naming-convention.ts b/packages/eslint-plugin/src/rules/naming-convention.ts index a27d9b09df0..9738922e6e9 100644 --- a/packages/eslint-plugin/src/rules/naming-convention.ts +++ b/packages/eslint-plugin/src/rules/naming-convention.ts @@ -1,3 +1,7 @@ +/* eslint-disable eslint-comments/no-use */ +/* eslint eslint-plugin/no-unused-message-ids:"off" -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/283 */ +/* eslint-enable eslint-comments/no-use */ + import { AST_NODE_TYPES, TSESLint, TSESTree } from '@typescript-eslint/utils'; import { PatternVisitor } from '@typescript-eslint/scope-manager'; import type { ScriptTarget } from 'typescript'; diff --git a/packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts b/packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts index dcd0f6be36f..814da92664e 100644 --- a/packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts +++ b/packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts @@ -9,7 +9,7 @@ export default util.createRule({ description: 'Disallow duplicate enum member values', recommended: 'strict', }, - hasSuggestions: true, + hasSuggestions: false, messages: { duplicateValue: 'Duplicate enum member value {{value}}.', }, diff --git a/packages/eslint-plugin/src/rules/no-empty-interface.ts b/packages/eslint-plugin/src/rules/no-empty-interface.ts index e8985919091..efe403bd0dd 100644 --- a/packages/eslint-plugin/src/rules/no-empty-interface.ts +++ b/packages/eslint-plugin/src/rules/no-empty-interface.ts @@ -15,10 +15,9 @@ export default util.createRule({ docs: { description: 'Disallow the declaration of empty interfaces', recommended: 'error', - suggestion: true, }, fixable: 'code', - hasSuggestions: true, + hasSuggestions: true, // eslint-disable-line eslint-plugin/require-meta-has-suggestions -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/272 messages: { noEmpty: 'An empty interface is equivalent to `{}`.', noEmptyWithSuper: diff --git a/packages/eslint-plugin/src/rules/no-explicit-any.ts b/packages/eslint-plugin/src/rules/no-explicit-any.ts index e0e8bfd2b9c..cdc9b3b2afe 100644 --- a/packages/eslint-plugin/src/rules/no-explicit-any.ts +++ b/packages/eslint-plugin/src/rules/no-explicit-any.ts @@ -16,10 +16,9 @@ export default util.createRule({ docs: { description: 'Disallow the `any` type', recommended: 'warn', - suggestion: true, }, fixable: 'code', - hasSuggestions: true, + hasSuggestions: true, // eslint-disable-line eslint-plugin/require-meta-has-suggestions -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/281 messages: { unexpectedAny: 'Unexpected any. Specify a different type.', suggestUnknown: diff --git a/packages/eslint-plugin/src/rules/no-floating-promises.ts b/packages/eslint-plugin/src/rules/no-floating-promises.ts index c59d0f08a6e..168cd3c5523 100644 --- a/packages/eslint-plugin/src/rules/no-floating-promises.ts +++ b/packages/eslint-plugin/src/rules/no-floating-promises.ts @@ -20,7 +20,6 @@ export default util.createRule({ description: 'Require Promise-like statements to be handled appropriately', recommended: 'error', - suggestion: true, requiresTypeChecking: true, }, hasSuggestions: true, diff --git a/packages/eslint-plugin/src/rules/no-implicit-any-catch.ts b/packages/eslint-plugin/src/rules/no-implicit-any-catch.ts index b48d68fde45..d020e81522f 100644 --- a/packages/eslint-plugin/src/rules/no-implicit-any-catch.ts +++ b/packages/eslint-plugin/src/rules/no-implicit-any-catch.ts @@ -19,7 +19,6 @@ export default util.createRule({ docs: { description: 'Disallow usage of the implicit `any` type in catch clauses', recommended: false, - suggestion: true, }, fixable: 'code', hasSuggestions: true, diff --git a/packages/eslint-plugin/src/rules/no-meaningless-void-operator.ts b/packages/eslint-plugin/src/rules/no-meaningless-void-operator.ts index e509b186dc8..093988623b3 100644 --- a/packages/eslint-plugin/src/rules/no-meaningless-void-operator.ts +++ b/packages/eslint-plugin/src/rules/no-meaningless-void-operator.ts @@ -20,7 +20,6 @@ export default util.createRule< description: 'Disallow the `void` operator except when used to discard a value', recommended: 'strict', - suggestion: true, requiresTypeChecking: true, }, fixable: 'code', diff --git a/packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts b/packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts index 9e1b3c94656..dcd1e07c90e 100644 --- a/packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts +++ b/packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts @@ -19,7 +19,6 @@ export default util.createRule({ description: 'Disallow non-null assertions after an optional chain expression', recommended: 'error', - suggestion: true, }, hasSuggestions: true, messages: { diff --git a/packages/eslint-plugin/src/rules/no-non-null-assertion.ts b/packages/eslint-plugin/src/rules/no-non-null-assertion.ts index c92c31e517a..46f03b2e135 100644 --- a/packages/eslint-plugin/src/rules/no-non-null-assertion.ts +++ b/packages/eslint-plugin/src/rules/no-non-null-assertion.ts @@ -11,7 +11,6 @@ export default util.createRule<[], MessageIds>({ description: 'Disallow non-null assertions using the `!` postfix operator', recommended: 'warn', - suggestion: true, }, hasSuggestions: true, messages: { diff --git a/packages/eslint-plugin/src/rules/no-unnecessary-type-constraint.ts b/packages/eslint-plugin/src/rules/no-unnecessary-type-constraint.ts index bb1c9333c9b..e08fb312abb 100644 --- a/packages/eslint-plugin/src/rules/no-unnecessary-type-constraint.ts +++ b/packages/eslint-plugin/src/rules/no-unnecessary-type-constraint.ts @@ -31,7 +31,6 @@ export default util.createRule({ docs: { description: 'Disallow unnecessary constraints on generic types', recommended: 'error', - suggestion: true, }, hasSuggestions: true, messages: { @@ -89,6 +88,9 @@ export default util.createRule({ suggest: [ { messageId: 'removeUnnecessaryConstraint', + data: { + constraint, + }, fix(fixer): TSESLint.RuleFix | null { return fixer.replaceTextRange( [node.name.range[1], node.constraint.range[1]], diff --git a/packages/eslint-plugin/src/rules/no-unsafe-argument.ts b/packages/eslint-plugin/src/rules/no-unsafe-argument.ts index 867b9c94627..826c88da341 100644 --- a/packages/eslint-plugin/src/rules/no-unsafe-argument.ts +++ b/packages/eslint-plugin/src/rules/no-unsafe-argument.ts @@ -142,7 +142,7 @@ export default util.createRule<[], MessageIds>({ unsafeArgument: 'Unsafe argument of type `{{sender}}` assigned to a parameter of type `{{receiver}}`.', unsafeTupleSpread: - 'Unsafe spread of a tuple type. The {{index}} element is of type `{{sender}}` and is assigned to a parameter of type `{{reciever}}`.', + 'Unsafe spread of a tuple type. The argument is of type `{{sender}}` and is assigned to a parameter of type `{{receiver}}`.', unsafeArraySpread: 'Unsafe spread of an `any` array type.', unsafeSpread: 'Unsafe spread of an `any` type.', }, diff --git a/packages/eslint-plugin/src/rules/no-unsafe-call.ts b/packages/eslint-plugin/src/rules/no-unsafe-call.ts index 799bba94295..dd209b27675 100644 --- a/packages/eslint-plugin/src/rules/no-unsafe-call.ts +++ b/packages/eslint-plugin/src/rules/no-unsafe-call.ts @@ -1,3 +1,7 @@ +/* eslint-disable eslint-comments/no-use */ +/* eslint eslint-plugin/no-unused-message-ids:"off" -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/282 */ +/* eslint-enable eslint-comments/no-use */ + import { TSESTree } from '@typescript-eslint/utils'; import * as tsutils from 'tsutils'; import * as util from '../util'; diff --git a/packages/eslint-plugin/src/rules/no-useless-empty-export.ts b/packages/eslint-plugin/src/rules/no-useless-empty-export.ts index c06c47b8f8e..d3c40518812 100644 --- a/packages/eslint-plugin/src/rules/no-useless-empty-export.ts +++ b/packages/eslint-plugin/src/rules/no-useless-empty-export.ts @@ -28,10 +28,9 @@ export default util.createRule({ description: "Disallow empty exports that don't change anything in a module file", recommended: false, - suggestion: true, }, fixable: 'code', - hasSuggestions: true, + hasSuggestions: false, messages: { uselessExport: 'Empty export does nothing and can be removed.', }, diff --git a/packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts b/packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts index ce160c66e07..6bddf89acf8 100644 --- a/packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts +++ b/packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts @@ -11,7 +11,6 @@ export default util.createRule({ description: 'Enforce non-null assertions over explicit type casts', recommended: 'strict', requiresTypeChecking: true, - suggestion: true, }, fixable: 'code', messages: { diff --git a/packages/eslint-plugin/src/rules/object-curly-spacing.ts b/packages/eslint-plugin/src/rules/object-curly-spacing.ts index c64ca54ba17..83cb543b7ef 100644 --- a/packages/eslint-plugin/src/rules/object-curly-spacing.ts +++ b/packages/eslint-plugin/src/rules/object-curly-spacing.ts @@ -20,6 +20,7 @@ export type MessageIds = InferMessageIdsTypeFromRule; export default createRule({ name: 'object-curly-spacing', + // eslint-disable-next-line eslint-plugin/prefer-message-ids,eslint-plugin/require-meta-type,eslint-plugin/require-meta-schema,eslint-plugin/require-meta-fixable -- all in base rule - https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/274 meta: { ...baseRule.meta, docs: { diff --git a/packages/eslint-plugin/src/rules/padding-line-between-statements.ts b/packages/eslint-plugin/src/rules/padding-line-between-statements.ts index e9d62632c82..938ba9524aa 100644 --- a/packages/eslint-plugin/src/rules/padding-line-between-statements.ts +++ b/packages/eslint-plugin/src/rules/padding-line-between-statements.ts @@ -592,7 +592,7 @@ export default util.createRule({ extendsBaseRule: true, }, fixable: 'whitespace', - hasSuggestions: true, + hasSuggestions: false, schema: { definitions: { paddingType: { diff --git a/packages/eslint-plugin/src/rules/prefer-as-const.ts b/packages/eslint-plugin/src/rules/prefer-as-const.ts index 3d4a3ec9fea..352ec3b4542 100644 --- a/packages/eslint-plugin/src/rules/prefer-as-const.ts +++ b/packages/eslint-plugin/src/rules/prefer-as-const.ts @@ -8,7 +8,6 @@ export default util.createRule({ docs: { description: 'Enforce the use of `as const` over literal type', recommended: 'error', - suggestion: true, }, fixable: 'code', hasSuggestions: true, diff --git a/packages/eslint-plugin/src/rules/prefer-enum-initializers.ts b/packages/eslint-plugin/src/rules/prefer-enum-initializers.ts index bad327a5be2..d282d758abe 100644 --- a/packages/eslint-plugin/src/rules/prefer-enum-initializers.ts +++ b/packages/eslint-plugin/src/rules/prefer-enum-initializers.ts @@ -11,7 +11,6 @@ export default util.createRule<[], MessageIds>({ description: 'Require each enum member value to be explicitly initialized', recommended: false, - suggestion: true, }, hasSuggestions: true, messages: { diff --git a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts index b2321fd0757..7008dbfbc12 100644 --- a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts +++ b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts @@ -28,7 +28,6 @@ export default util.createRule({ description: 'Enforce using the nullish coalescing operator instead of logical chaining', recommended: 'strict', - suggestion: true, requiresTypeChecking: true, }, hasSuggestions: true, diff --git a/packages/eslint-plugin/src/rules/prefer-optional-chain.ts b/packages/eslint-plugin/src/rules/prefer-optional-chain.ts index 662439ac743..654624faaf7 100644 --- a/packages/eslint-plugin/src/rules/prefer-optional-chain.ts +++ b/packages/eslint-plugin/src/rules/prefer-optional-chain.ts @@ -36,7 +36,6 @@ export default util.createRule({ description: 'Enforce using concise optional chain expressions instead of chained logical ands', recommended: 'strict', - suggestion: true, }, hasSuggestions: true, messages: { diff --git a/packages/eslint-plugin/src/rules/return-await.ts b/packages/eslint-plugin/src/rules/return-await.ts index fbb78708bd4..e55f989cd14 100644 --- a/packages/eslint-plugin/src/rules/return-await.ts +++ b/packages/eslint-plugin/src/rules/return-await.ts @@ -25,7 +25,7 @@ export default util.createRule({ extendsBaseRule: 'no-return-await', }, fixable: 'code', - hasSuggestions: true, + hasSuggestions: true, // eslint-disable-line eslint-plugin/require-meta-has-suggestions -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/272 type: 'problem', messages: { nonPromiseAwait: diff --git a/packages/eslint-plugin/src/rules/sort-type-union-intersection-members.ts b/packages/eslint-plugin/src/rules/sort-type-union-intersection-members.ts index f96c4677506..de1bcf15790 100644 --- a/packages/eslint-plugin/src/rules/sort-type-union-intersection-members.ts +++ b/packages/eslint-plugin/src/rules/sort-type-union-intersection-members.ts @@ -110,7 +110,7 @@ export default util.createRule({ recommended: false, }, fixable: 'code', - hasSuggestions: true, + hasSuggestions: true, // eslint-disable-line eslint-plugin/require-meta-has-suggestions -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/272 messages: { notSorted: '{{type}} type members must be sorted.', notSortedNamed: '{{type}} type {{name}} members must be sorted.', diff --git a/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts b/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts index bb11c245722..4847e8efbb0 100644 --- a/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts +++ b/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts @@ -18,7 +18,6 @@ export default createRule({ description: 'Require switch-case statements to be exhaustive with union type', recommended: false, - suggestion: true, requiresTypeChecking: true, }, hasSuggestions: true, diff --git a/packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts b/packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts index b02fd3dfa2d..5c59f92b92d 100644 --- a/packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts +++ b/packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts @@ -194,11 +194,7 @@ interface B extends A { [index: number]: unknown; } `, - output: ` -interface B extends A { - [index: number]: unknown; -} - `, + output: null, errors: [{ messageId: 'preferRecord', line: 2, column: 1 }], }, // Readonly interface with generic parameter diff --git a/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts b/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts index 2c3a5a86eb7..829e2987ad1 100644 --- a/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts +++ b/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts @@ -368,11 +368,7 @@ export class XXXX { line: 3, }, ], - output: ` -export class XXXX { - public constructor(readonly value: string) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -383,11 +379,7 @@ export class WithParameterProperty { `, options: [{ accessibility: 'explicit' }], errors: [{ messageId: 'missingAccessibility' }], - output: ` -export class WithParameterProperty { - public constructor(readonly value: string) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -406,11 +398,7 @@ export class XXXX { }, ], errors: [{ messageId: 'missingAccessibility' }], - output: ` -export class XXXX { - public constructor(readonly samosa: string) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -426,11 +414,7 @@ class Test { }, ], errors: [{ messageId: 'missingAccessibility' }], - output: ` -class Test { - public constructor(readonly foo: string) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -453,14 +437,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - x: number; - public getX() { - return this.x; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -483,14 +460,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - private x: number; - getX() { - return this.x; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -522,14 +492,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - x?: number; - getX?() { - return this.x; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -658,20 +621,7 @@ class Test { }, ], options: [{ overrides: { constructors: 'no-public' } }], - output: ` -class Test { - private x: number; - constructor(x: number) { - this.x = x; - } - get internalValue() { - return this.x; - } - set internalValue(value: number) { - this.x = value; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -706,20 +656,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - private x: number; - constructor(x: number) { - this.x = x; - } - get internalValue() { - return this.x; - } - set internalValue(value: number) { - this.x = value; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -743,14 +680,7 @@ class Test { overrides: { parameterProperties: 'no-public' }, }, ], - output: ` -class Test { - constructor(public x: number) {} - public foo(): string { - return 'foo'; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -766,11 +696,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - constructor(public x: number) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -818,11 +744,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - x = 2; -} - `, + output: null, }, { filename: 'test.ts', @@ -866,11 +788,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - constructor(public ...x: any[]) {} -} - `, + output: null, }, { filename: 'test.ts', diff --git a/packages/eslint-plugin/tests/rules/no-dynamic-delete.test.ts b/packages/eslint-plugin/tests/rules/no-dynamic-delete.test.ts index 798971e90f1..782bc3fec57 100644 --- a/packages/eslint-plugin/tests/rules/no-dynamic-delete.test.ts +++ b/packages/eslint-plugin/tests/rules/no-dynamic-delete.test.ts @@ -68,10 +68,7 @@ const container: { [i: string]: 0 } = {}; delete container['aa' + 'b']; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -delete container['aa' + 'b']; - `, + output: null, }, { code: ` @@ -90,10 +87,7 @@ const container: { [i: string]: 0 } = {}; delete container[-Infinity]; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -delete container[-Infinity]; - `, + output: null, }, { code: ` @@ -101,10 +95,7 @@ const container: { [i: string]: 0 } = {}; delete container[+Infinity]; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -delete container[+Infinity]; - `, + output: null, }, { code: ` @@ -112,10 +103,7 @@ const container: { [i: string]: 0 } = {}; delete container[NaN]; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -delete container[NaN]; - `, + output: null, }, { code: ` @@ -135,11 +123,7 @@ const name = 'name'; delete container[name]; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -const name = 'name'; -delete container[name]; - `, + output: null, }, { code: ` @@ -147,11 +131,7 @@ const container: { [i: string]: 0 } = {}; const getName = () => 'aaa'; delete container[getName()]; `, - output: ` -const container: { [i: string]: 0 } = {}; -const getName = () => 'aaa'; -delete container[getName()]; - `, + output: null, errors: [{ messageId: 'dynamicDelete' }], }, { @@ -160,11 +140,7 @@ const container: { [i: string]: 0 } = {}; const name = { foo: { bar: 'bar' } }; delete container[name.foo.bar]; `, - output: ` -const container: { [i: string]: 0 } = {}; -const name = { foo: { bar: 'bar' } }; -delete container[name.foo.bar]; - `, + output: null, errors: [{ messageId: 'dynamicDelete' }], }, ], diff --git a/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts b/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts index f974af09c18..dc4ea909ea7 100644 --- a/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts +++ b/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts @@ -184,12 +184,7 @@ declare module FooBar { }, ], // output matches input because a suggestion was made - output: ` -declare module FooBar { - type Baz = typeof baz; - export interface Bar extends Baz {} -} - `.trimRight(), + output: null, }, ], }); diff --git a/packages/eslint-plugin/tests/rules/no-unnecessary-type-constraint.test.ts b/packages/eslint-plugin/tests/rules/no-unnecessary-type-constraint.test.ts index 91798c8b059..05465ee256c 100644 --- a/packages/eslint-plugin/tests/rules/no-unnecessary-type-constraint.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unnecessary-type-constraint.test.ts @@ -39,6 +39,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: 'function data() {}', }, ], @@ -57,6 +58,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: 'function data() {}', }, ], @@ -75,6 +77,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: 'function data() {}', }, ], @@ -93,6 +96,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: 'function data() {}', }, ], @@ -111,6 +115,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: noFormat`const data = () => {};`, }, ], @@ -130,6 +135,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: noFormat`const data = () => {};`, }, ], @@ -149,6 +155,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: noFormat`const data = () => {};`, }, ], @@ -168,6 +175,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: noFormat`const data = () => {};`, }, ], @@ -187,6 +195,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: noFormat`const data = () => {};`, }, ], @@ -206,6 +215,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: 'const data = () => {};', }, ], @@ -225,6 +235,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: noFormat`const data = () => {};`, }, ], @@ -238,6 +249,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: noFormat`const data = () => {};`, }, ], @@ -257,6 +269,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'unknown' }, output: 'function data() {}', }, ], @@ -275,6 +288,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'any' }, output: 'const data = () => {};', }, ], @@ -293,6 +307,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'unknown' }, output: 'const data = () => {};', }, ], @@ -311,6 +326,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'unknown' }, output: 'class Data {}', }, ], @@ -329,6 +345,7 @@ function data() {} suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'unknown' }, output: 'const Data = class {};', }, ], @@ -351,6 +368,7 @@ class Data { suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'unknown' }, output: ` class Data { member() {} @@ -377,6 +395,7 @@ const Data = class { suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'unknown' }, output: ` const Data = class { member() {} @@ -399,6 +418,7 @@ const Data = class { suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'unknown' }, output: 'interface Data {}', }, ], @@ -417,6 +437,7 @@ const Data = class { suggestions: [ { messageId: 'removeUnnecessaryConstraint', + data: { constraint: 'unknown' }, output: 'type Data = {};', }, ], diff --git a/packages/eslint-plugin/tests/rules/prefer-as-const.test.ts b/packages/eslint-plugin/tests/rules/prefer-as-const.test.ts index b31499f4e8a..7cfdc209411 100644 --- a/packages/eslint-plugin/tests/rules/prefer-as-const.test.ts +++ b/packages/eslint-plugin/tests/rules/prefer-as-const.test.ts @@ -114,7 +114,7 @@ ruleTester.run('prefer-as-const', rule, { }, { code: "let []: 'bar' = 'bar';", - output: "let []: 'bar' = 'bar';", + output: null, errors: [ { messageId: 'variableConstAssertion', @@ -125,7 +125,7 @@ ruleTester.run('prefer-as-const', rule, { }, { code: "let foo: 'bar' = 'bar';", - output: "let foo: 'bar' = 'bar';", + output: null, errors: [ { messageId: 'variableConstAssertion', @@ -142,7 +142,7 @@ ruleTester.run('prefer-as-const', rule, { }, { code: 'let foo: 2 = 2;', - output: 'let foo: 2 = 2;', + output: null, errors: [ { messageId: 'variableConstAssertion', @@ -218,11 +218,7 @@ class foo { bar: 'baz' = 'baz'; } `.trimRight(), - output: ` -class foo { - bar: 'baz' = 'baz'; -} - `.trimRight(), + output: null, errors: [ { messageId: 'variableConstAssertion', @@ -247,11 +243,7 @@ class foo { bar: 2 = 2; } `.trimRight(), - output: ` -class foo { - bar: 2 = 2; -} - `.trimRight(), + output: null, errors: [ { messageId: 'variableConstAssertion', diff --git a/packages/eslint-plugin/tests/rules/prefer-function-type.test.ts b/packages/eslint-plugin/tests/rules/prefer-function-type.test.ts index 50fb8370b18..452bcadffc8 100644 --- a/packages/eslint-plugin/tests/rules/prefer-function-type.test.ts +++ b/packages/eslint-plugin/tests/rules/prefer-function-type.test.ts @@ -82,12 +82,7 @@ export default interface Foo { }, }, ], - output: ` -export default interface Foo { - /** comment */ - (): string; -} - `, + output: null, }, { code: `