From 2f1c8afcf2622d7b9280f05387cd93f352a941b1 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Tue, 23 Nov 2021 15:17:49 +0100
Subject: [PATCH] fix(config): validate matchStrings (#12808)

---
 lib/config/validation.spec.ts | 17 ++++++++++++-----
 lib/config/validation.ts      |  7 ++++++-
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/lib/config/validation.spec.ts b/lib/config/validation.spec.ts
index 0bf7c5a906..ea0566e943 100644
--- a/lib/config/validation.spec.ts
+++ b/lib/config/validation.spec.ts
@@ -308,7 +308,7 @@ describe('config/validation', () => {
       expect(errors).toMatchInlineSnapshot(`
         Array [
           Object {
-            "message": "Each Regex Manager must contain a fileMatch array",
+            "message": "Each Regex Manager must contain a non-empty fileMatch array",
             "topic": "Configuration Error",
           },
         ]
@@ -318,21 +318,28 @@ describe('config/validation', () => {
       const config = {
         regexManagers: [
           {
-            fileMatch: [],
+            fileMatch: ['foo'],
             matchStrings: [],
           },
+          {
+            fileMatch: ['foo'],
+          },
         ],
       };
       const { warnings, errors } = await configValidation.validateConfig(
-        config,
+        config as RenovateConfig,
         true
       );
       expect(warnings).toHaveLength(0);
-      expect(errors).toHaveLength(1);
+      expect(errors).toHaveLength(2);
       expect(errors).toMatchInlineSnapshot(`
         Array [
           Object {
-            "message": "Each Regex Manager must contain a fileMatch array",
+            "message": "Each Regex Manager must contain a non-empty matchStrings array",
+            "topic": "Configuration Error",
+          },
+          Object {
+            "message": "Each Regex Manager must contain a non-empty matchStrings array",
             "topic": "Configuration Error",
           },
         ]
diff --git a/lib/config/validation.ts b/lib/config/validation.ts
index 69aaca7ac9..4c80f07031 100644
--- a/lib/config/validation.ts
+++ b/lib/config/validation.ts
@@ -443,11 +443,16 @@ export async function validateConfig(
                         }
                       }
                     }
+                  } else {
+                    errors.push({
+                      topic: 'Configuration Error',
+                      message: `Each Regex Manager must contain a non-empty matchStrings array`,
+                    });
                   }
                 } else {
                   errors.push({
                     topic: 'Configuration Error',
-                    message: `Each Regex Manager must contain a fileMatch array`,
+                    message: `Each Regex Manager must contain a non-empty fileMatch array`,
                   });
                 }
               }
-- 
GitLab