From 7b129953c2de22f8c8642d3e3d684800f119d7b7 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Thu, 11 Feb 2016 23:30:32 +0200 Subject: [PATCH] Fix: `key-spacing` not enforcing no-space in minimum mode (fixes #5008) --- lib/rules/key-spacing.js | 5 ++++- tests/lib/rules/key-spacing.js | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/lib/rules/key-spacing.js b/lib/rules/key-spacing.js index 6bb03a5b3c2..cfdbf11f326 100644 --- a/lib/rules/key-spacing.js +++ b/lib/rules/key-spacing.js @@ -203,7 +203,10 @@ module.exports = function(context) { firstTokenAfterColon = context.getTokenAfter(getNextColon(key)), location = side === "key" ? key.loc.start : firstTokenAfterColon.loc.start; - if ((diff && mode === "strict" || diff < 0 && mode === "minimum") && + if (( + diff && mode === "strict" || + diff < 0 && mode === "minimum" || + diff > 0 && !expected && mode === "minimum") && !(expected && containsLineTerminator(whitespace)) ) { context.report(property[side], location, messages[side], { diff --git a/tests/lib/rules/key-spacing.js b/tests/lib/rules/key-spacing.js index 298e9b3edb9..2e4d25d3f68 100644 --- a/tests/lib/rules/key-spacing.js +++ b/tests/lib/rules/key-spacing.js @@ -152,8 +152,7 @@ ruleTester.run("key-spacing", rule, { }, { code: [ "obj = { key ", - " : ", - " longName };" + " :longName };" ].join("\n"), options: [{ beforeColon: true, @@ -161,7 +160,7 @@ ruleTester.run("key-spacing", rule, { mode: "minimum" }] }, { - code: "obj = { key : longName };", + code: "obj = { key :longName };", options: [{ beforeColon: true, afterColon: false, @@ -984,6 +983,23 @@ ruleTester.run("key-spacing", rule, { errors: [ { message: "Missing space before value for key 'ex'.", line: 4, column: 7, type: "Identifier" } ] + }, { + code: [ + "obj = {", + " get fx() { return 'f'; },", + " get gx() { return 'g'; },", + " ex : e", + "};" + ].join("\n"), + options: [{ + align: "colon", + beforeColon: false, + afterColon: true, + mode: "minimum" + }], + errors: [ + { message: "Extra space after key 'ex'.", line: 4, column: 4, type: "Identifier" } + ] }, { code: [ "({",