diff --git a/lib/modules/manager/terraform/lockfile/index.spec.ts b/lib/modules/manager/terraform/lockfile/index.spec.ts index a49a2dadd1e6ded7b525cd2fea7312e2005c5309..df8ad45196e9c7d44b47477dea18aec5df30e4c5 100644 --- a/lib/modules/manager/terraform/lockfile/index.spec.ts +++ b/lib/modules/manager/terraform/lockfile/index.spec.ts @@ -1118,6 +1118,32 @@ describe('modules/manager/terraform/lockfile/index', () => { ).toBe('>= 2.36.0, 2.46.0'); }); + it('update constraint when current version is matched multiple times', () => { + expect( + getNewConstraint( + { + currentValue: '2.41.0', + newValue: '2.46.0', + newVersion: '2.46.0', + }, + '>= 2.41.0, 2.41.0', + ), + ).toBe('>= 2.41.0, 2.46.0'); + }); + + it('update constraint when current version is in a complicated constraint', () => { + expect( + getNewConstraint( + { + currentValue: '<= 2.41.0', + newValue: '<= 2.46.0', + newVersion: '2.46.0', + }, + '>= 2.41.0, <= 2.41.0, >= 2.0.0', + ), + ).toBe('>= 2.41.0, <= 2.46.0, >= 2.0.0'); + }); + it('create constraint with full version', () => { expect( getNewConstraint( diff --git a/lib/modules/manager/terraform/lockfile/index.ts b/lib/modules/manager/terraform/lockfile/index.ts index 70f9e8739ee9d4699d5aef27d8d0bb3a87806ca2..11ff172002a85c4b4325217d15a9b4cc58b9bae5 100644 --- a/lib/modules/manager/terraform/lockfile/index.ts +++ b/lib/modules/manager/terraform/lockfile/index.ts @@ -99,8 +99,8 @@ export function getNewConstraint( ); //remove surplus .0 version return oldConstraint.replace( - regEx(`${escapeRegExp(currentValue)}(\\.0)*`), - newValue, + regEx(`(,\\s|^)${escapeRegExp(currentValue)}(\\.0)*`), + `$1${newValue}`, ); }