From 6060911aefe35c01c45f653e88beef689b3b6c89 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sun, 11 Apr 2021 18:40:01 +0200
Subject: [PATCH] refactor: packageRules selector validation

---
 lib/config/validation.ts | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/lib/config/validation.ts b/lib/config/validation.ts
index 7021fd833d..ee1feb4a7a 100644
--- a/lib/config/validation.ts
+++ b/lib/config/validation.ts
@@ -269,7 +269,6 @@ export async function validateConfig(
             ];
             if (key === 'packageRules') {
               for (const [subIndex, packageRule] of val.entries()) {
-                let hasSelector = false;
                 if (is.object(packageRule)) {
                   const resolvedRule = await resolveConfigPresets(
                     packageRule as RenovateConfig,
@@ -278,12 +277,10 @@ export async function validateConfig(
                   errors.push(
                     ...managerValidator.check({ resolvedRule, currentPath })
                   );
-                  for (const pKey of Object.keys(resolvedRule)) {
-                    if (selectors.includes(pKey)) {
-                      hasSelector = true;
-                    }
-                  }
-                  if (!hasSelector) {
+                  const selectorLength = Object.keys(
+                    resolvedRule
+                  ).filter((ruleKey) => selectors.includes(ruleKey)).length;
+                  if (!selectorLength) {
                     const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one match* or exclude* selector. Rule: ${JSON.stringify(
                       packageRule
                     )}`;
-- 
GitLab