From 10251bbaeba80ac15244f385fc42cf2f2a30e5d2 Mon Sep 17 00:00:00 2001 From: Milos Djermanovic Date: Tue, 7 Jul 2020 22:23:30 +0200 Subject: [PATCH] Fix: add end location to reports in keyword-spacing (refs #12334) (#13461) --- lib/rules/keyword-spacing.js | 4 +- tests/lib/rules/keyword-spacing.js | 80 ++++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 22 deletions(-) diff --git a/lib/rules/keyword-spacing.js b/lib/rules/keyword-spacing.js index 99979a32a5b..913cf4682f9 100644 --- a/lib/rules/keyword-spacing.js +++ b/lib/rules/keyword-spacing.js @@ -126,7 +126,7 @@ module.exports = { !sourceCode.isSpaceBetweenTokens(prevToken, token) ) { context.report({ - loc: token.loc.start, + loc: token.loc, messageId: "expectedBefore", data: token, fix(fixer) { @@ -178,7 +178,7 @@ module.exports = { !sourceCode.isSpaceBetweenTokens(token, nextToken) ) { context.report({ - loc: token.loc.start, + loc: token.loc, messageId: "expectedAfter", data: token, fix(fixer) { diff --git a/tests/lib/rules/keyword-spacing.js b/tests/lib/rules/keyword-spacing.js index b67ee52384b..64ee5a43474 100644 --- a/tests/lib/rules/keyword-spacing.js +++ b/tests/lib/rules/keyword-spacing.js @@ -1364,14 +1364,14 @@ ruleTester.run("keyword-spacing", rule, { code: "import *as a from \"foo\"", output: "import * as a from \"foo\"", parserOptions: { ecmaVersion: 6, sourceType: "module" }, - errors: expectedBefore("as") - }, - { - code: "import* as a from\"foo\"", - output: "import*as a from\"foo\"", - options: [NEITHER], - parserOptions: { ecmaVersion: 6, sourceType: "module" }, - errors: unexpectedBefore("as") + errors: [{ + messageId: "expectedBefore", + data: { value: "as" }, + line: 1, + column: 9, + endLine: 1, + endColumn: 11 + }] }, { code: "import* as a from\"foo\"", @@ -1380,27 +1380,26 @@ ruleTester.run("keyword-spacing", rule, { parserOptions: { ecmaVersion: 6, sourceType: "module" }, errors: [{ messageId: "unexpectedBefore", + data: { value: "as" }, line: 1, column: 8, endLine: 1, endColumn: 9 - } - ] + }] }, { - code: "import *as a from\"foo\"", + code: "import* as a from\"foo\"", output: "import*as a from\"foo\"", options: [NEITHER], parserOptions: { ecmaVersion: 6, sourceType: "module" }, - errors: [ - { - messageId: "unexpectedAfter", - line: 1, - column: 7, - endLine: 1, - endColumn: 8 - } - ] + errors: [{ + messageId: "unexpectedBefore", + data: { value: "as" }, + line: 1, + column: 8, + endLine: 1, + endColumn: 11 + }] }, { code: "import*as a from\"foo\"", @@ -2510,6 +2509,47 @@ ruleTester.run("keyword-spacing", rule, { // import //---------------------------------------------------------------------- + { + code: "import* as a from \"foo\"", + output: "import * as a from \"foo\"", + parserOptions: { ecmaVersion: 6, sourceType: "module" }, + errors: [{ + messageId: "expectedAfter", + data: { value: "import" }, + line: 1, + column: 1, + endLine: 1, + endColumn: 7 + }] + }, + { + code: "import *as a from\"foo\"", + output: "import*as a from\"foo\"", + options: [NEITHER], + parserOptions: { ecmaVersion: 6, sourceType: "module" }, + errors: [{ + messageId: "unexpectedAfter", + data: { value: "import" }, + line: 1, + column: 7, + endLine: 1, + endColumn: 8 + }] + }, + { + code: "import *as a from\"foo\"", + output: "import*as a from\"foo\"", + options: [NEITHER], + parserOptions: { ecmaVersion: 6, sourceType: "module" }, + errors: [{ + messageId: "unexpectedAfter", + data: { value: "import" }, + line: 1, + column: 7, + endLine: 1, + endColumn: 10 + }] + }, { code: "{}import{a} from \"foo\"", output: "{} import {a} from \"foo\"",