From 5f531f49457c5393af423b135619aa66ac20503b Mon Sep 17 00:00:00 2001 From: Duncan Casteleyn <10881109+DuncanCasteleyn@users.noreply.github.com> Date: Thu, 16 Feb 2023 07:37:08 +0100 Subject: [PATCH] fix: apply recreateClosed to grouped pinDigests (#20430) --- .../repository/updates/generate.spec.ts | 70 +++++++++++++++++++ lib/workers/repository/updates/generate.ts | 5 +- 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index 557ae43779..d5f409246c 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -269,6 +269,76 @@ describe('workers/repository/updates/generate', () => { expect(res.recreateClosed).toBeTrue(); }); + it('Grouped pin & pinDigest can be recreated', () => { + // TODO #7154 incompatible types + const branch: BranchUpgradeConfig[] = [ + { + ...defaultConfig, + isPinDigest: true, + updateType: 'pinDigest', + newValue: 'v2', + newDigest: 'dc323e67f16fb5f7663d20ff7941f27f5809e9b6', + } as BranchUpgradeConfig, + { + ...defaultConfig, + updateType: 'pin', + isPin: true, + newValue: "'2.2.0'", + newVersion: '2.2.0', + newMajor: 2, + } as BranchUpgradeConfig, + ]; + const res = generateBranchConfig(branch); + expect(res.recreateClosed).toBeTrue(); + }); + + it('Grouped pin can be recreated', () => { + // TODO #7154 incompatible types + const branch: BranchUpgradeConfig[] = [ + { + ...defaultConfig, + updateType: 'pin', + isPin: true, + newValue: "'2.2.0'", + newVersion: '2.2.0', + newMajor: 2, + } as BranchUpgradeConfig, + { + ...defaultConfig, + updateType: 'pin', + isPin: true, + newValue: "'3.2.0'", + newVersion: '3.2.0', + newMajor: 3, + } as BranchUpgradeConfig, + ]; + const res = generateBranchConfig(branch); + expect(res.recreateClosed).toBeTrue(); + }); + + it('grouped pinDigest can be recreated', () => { + // TODO #7154 incompatible types + const branch: BranchUpgradeConfig[] = [ + { + ...defaultConfig, + isPinDigest: true, + newDigest: 'abcd', + newValue: 'v3', + updateType: 'pinDigest', + } as BranchUpgradeConfig, + { + ...defaultConfig, + isPinDigest: true, + newDigest: 'dcba', + newMajor: 2, + newValue: 'v2', + updateType: 'pinDigest', + } as BranchUpgradeConfig, + ]; + const res = generateBranchConfig(branch); + expect(res.recreateClosed).toBeTrue(); + }); + it('groups multiple upgrades different version', () => { const branch: BranchUpgradeConfig[] = [ { diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts index 93d2e12209..5a3ff3e05b 100644 --- a/lib/workers/repository/updates/generate.ts +++ b/lib/workers/repository/updates/generate.ts @@ -179,7 +179,10 @@ export function generateBranchConfig( logger.trace({ toValues }); delete upgrade.commitMessageExtra; upgrade.recreateClosed = true; - } else if (newValue.length > 1 && upgrade.isDigest) { + } else if ( + newValue.length > 1 && + (upgrade.isDigest || upgrade.isPinDigest) + ) { logger.trace({ newValue }); delete upgrade.commitMessageExtra; upgrade.recreateClosed = true; -- GitLab