diff --git a/lib/config/__snapshots__/validation.spec.ts.snap b/lib/config/__snapshots__/validation.spec.ts.snap index 27285c4322baba0556d770e774a38e7cde71709e..a86d837e6c9dc41f7cc2a56bf3d96bc26f11a7a2 100644 --- a/lib/config/__snapshots__/validation.spec.ts.snap +++ b/lib/config/__snapshots__/validation.spec.ts.snap @@ -53,6 +53,10 @@ Array [ "message": "Configuration option \`packageRules[3].matchPackagePatterns\` should be a list (Array)", "topic": "Configuration Error", }, + Object { + "message": "Configuration option \`prCommitsPerRunLimit\` should be an integer. Found: false (boolean)", + "topic": "Configuration Error", + }, Object { "message": "Configuration option \`semanticCommitType\` should be a string", "topic": "Configuration Error", diff --git a/lib/config/validation.spec.ts b/lib/config/validation.spec.ts index 31f564af38eae9f855abd346293ca84e7d20406e..1d7f3246482502fe2816a4a9b27081dec46117e6 100644 --- a/lib/config/validation.spec.ts +++ b/lib/config/validation.spec.ts @@ -195,6 +195,7 @@ describe('config/validation', () => { schedule: ['every 15 mins every weekday'], timezone: 'Asia', labels: 5 as any, + prCommitsPerRunLimit: false as any, semanticCommitType: 7 as any, lockFileMaintenance: false as any, extends: [':timezone(Europe/Brussel)'], @@ -220,7 +221,7 @@ describe('config/validation', () => { ); expect(warnings).toHaveLength(1); expect(errors).toMatchSnapshot(); - expect(errors).toHaveLength(12); + expect(errors).toHaveLength(13); }); it('selectors outside packageRules array trigger errors', async () => { diff --git a/lib/config/validation.ts b/lib/config/validation.ts index 383790945cb8ac05ffa68454b8e9a75ec69b0444..912e887f6281213fbf0dcee3c7c9768e15766e30 100644 --- a/lib/config/validation.ts +++ b/lib/config/validation.ts @@ -243,6 +243,15 @@ export async function validateConfig( )} (${typeof val})`, }); } + } else if (type === 'integer') { + if (!is.number(val)) { + errors.push({ + topic: 'Configuration Error', + message: `Configuration option \`${currentPath}\` should be an integer. Found: ${JSON.stringify( + val + )} (${typeof val})`, + }); + } } else if (type === 'array' && val) { if (is.array(val)) { for (const [subIndex, subval] of val.entries()) {