From d9c87799019cff2287a17d1fffb3c5791607e8d1 Mon Sep 17 00:00:00 2001 From: Milos Djermanovic Date: Thu, 1 Aug 2019 23:45:06 +0200 Subject: [PATCH] Fix: key-spacing shouldn't report object pattern properties --- lib/rules/key-spacing.js | 4 ++++ tests/lib/rules/key-spacing.js | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/rules/key-spacing.js b/lib/rules/key-spacing.js index 994c35627f7..f407825a8ba 100644 --- a/lib/rules/key-spacing.js +++ b/lib/rules/key-spacing.js @@ -643,6 +643,10 @@ module.exports = { // Obey beforeColon and afterColon in each property as configured return { Property(node) { + if (node.parent.type !== "ObjectExpression") { + return; + } + verifySpacing(node, isSingleLine(node.parent) ? singleLineOptions : multiLineOptions); } }; diff --git a/tests/lib/rules/key-spacing.js b/tests/lib/rules/key-spacing.js index a9ed533741c..aeb7b9bd651 100644 --- a/tests/lib/rules/key-spacing.js +++ b/tests/lib/rules/key-spacing.js @@ -757,6 +757,22 @@ ruleTester.run("key-spacing", rule, { } }], parserOptions: { ecmaVersion: 6 } + }, + + // This rule does not check object pattern properties + { + code: "({ a : foo } = bar)", + options: [{ beforeColon: false }], + parserOptions: { ecmaVersion: 6 } + }, { + code: [ + "({", + " foo: a,", + " bar: b", + "} = baz)" + ].join("\n"), + options: [{ align: "value" }], + parserOptions: { ecmaVersion: 6 } }], invalid: [{