From d320174f40a74b34e6b6e4c88128ef6e736311d8 Mon Sep 17 00:00:00 2001 From: Armano Date: Mon, 30 May 2022 22:30:08 +0200 Subject: [PATCH] fix(eslint-plugin): [space-infix-ops] correct PropertyDefinition with typeAnnotation (#5113) --- .../src/rules/space-infix-ops.ts | 4 +- .../tests/rules/space-infix-ops.test.ts | 52 +++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin/src/rules/space-infix-ops.ts b/packages/eslint-plugin/src/rules/space-infix-ops.ts index cd2be0409bc..3d5cf9e2458 100644 --- a/packages/eslint-plugin/src/rules/space-infix-ops.ts +++ b/packages/eslint-plugin/src/rules/space-infix-ops.ts @@ -124,8 +124,8 @@ export default util.createRule({ function checkForPropertyDefinitionAssignmentSpace( node: TSESTree.PropertyDefinition, ): void { - const leftNode = sourceCode.getTokenByRangeStart( - node.typeAnnotation?.range[0] ?? node.range[0], + const leftNode = sourceCode.getLastToken( + node.typeAnnotation ?? node.key, )!; const rightNode = node.value ? sourceCode.getTokenByRangeStart(node.value.range[0]) diff --git a/packages/eslint-plugin/tests/rules/space-infix-ops.test.ts b/packages/eslint-plugin/tests/rules/space-infix-ops.test.ts index 26e62323167..59a99d9aced 100644 --- a/packages/eslint-plugin/tests/rules/space-infix-ops.test.ts +++ b/packages/eslint-plugin/tests/rules/space-infix-ops.test.ts @@ -151,6 +151,20 @@ ruleTester.run('space-infix-ops', rule, { } `, }, + { + code: ` + class Test { + value: { prop: string }[] = []; + } + `, + }, + { + code: ` + class Test { + value:{prop:string}[] = []; + } + `, + }, { code: ` type Test = @@ -473,6 +487,44 @@ ruleTester.run('space-infix-ops', rule, { }, ], }, + { + code: ` + class Test { + value: { prop: string }[]= []; + } + `, + output: ` + class Test { + value: { prop: string }[] = []; + } + `, + errors: [ + { + messageId: 'missingSpace', + column: 36, + line: 3, + }, + ], + }, + { + code: ` + class Test { + value: { prop: string }[] =[]; + } + `, + output: ` + class Test { + value: { prop: string }[] = []; + } + `, + errors: [ + { + messageId: 'missingSpace', + column: 37, + line: 3, + }, + ], + }, { code: ` type Test= string | number;