diff --git a/lib/util/package-rules.spec.ts b/lib/util/package-rules.spec.ts index 16c79b203a1abb8eeb649acc3d6bfe5afa4bca3e..f444208d353a6e7f5d7784642e440e5cb74b1df3 100644 --- a/lib/util/package-rules.spec.ts +++ b/lib/util/package-rules.spec.ts @@ -167,8 +167,43 @@ describe('util/package-rules', () => { ], }; const res = applyPackageRules(dep); + expect(res.automerge).toBeFalse(); + const res2 = applyPackageRules({ ...dep, depName: 'foo' }); + expect(res2.automerge).toBeTrue(); + }); + + it('do not apply rule with empty matchPackagePattern', () => { + const dep = { + automerge: true, + updateType: 'lockFileMaintenance' as UpdateType, + packageRules: [ + { + matchPackagePatterns: [], + excludePackagePatterns: ['^foo'], + automerge: false, + }, + ], + }; + const res = applyPackageRules(dep); + expect(res.automerge).toBeTrue(); + const res2 = applyPackageRules({ ...dep, depName: 'foo' }); + expect(res2.automerge).toBeTrue(); + }); + + it('do apply rule with matchPackageName', () => { + const dep = { + automerge: true, + updateType: 'lockFileMaintenance' as UpdateType, + packageRules: [ + { + matchPackageNames: ['foo'], + automerge: false, + }, + ], + }; + const res = applyPackageRules(dep); expect(res.automerge).toBeTrue(); - const res2 = applyPackageRules({ ...dep, depName: 'anything' }); + const res2 = applyPackageRules({ ...dep, depName: 'foo' }); expect(res2.automerge).toBeFalse(); }); diff --git a/lib/util/package-rules.ts b/lib/util/package-rules.ts index 5447e82fd2a9a5283677ea8bc98d758c2f268d76..55b637e5f9847834df7937deec45ce3193df7e4c 100644 --- a/lib/util/package-rules.ts +++ b/lib/util/package-rules.ts @@ -155,7 +155,12 @@ function matchesRule( matchPackagePrefixes.length ) { if (!depName) { - return false; + // if using the default rules, return true else false + return ( + is.undefined(packageRule.matchPackagePatterns) && + is.undefined(packageRule.matchPackageNames) && + is.undefined(packageRule.matchPackagePrefixes) + ); } let isMatch = matchPackageNames.includes(depName); // name match is "or" so we check patterns if we didn't match names