From c4f22fa389c769bf5f82b76bed19688f94fd9183 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sat, 10 Apr 2021 18:30:29 +0200 Subject: [PATCH] fix(hex): short range replace (#9488) --- lib/versioning/hex/index.spec.ts | 10 ++++++++++ lib/versioning/hex/index.ts | 5 ++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/versioning/hex/index.spec.ts b/lib/versioning/hex/index.spec.ts index 08eb4b20f3..64514e6027 100644 --- a/lib/versioning/hex/index.spec.ts +++ b/lib/versioning/hex/index.spec.ts @@ -215,4 +215,14 @@ describe('lib/versioning/hex', () => { }) ).toEqual('== 2.0.7'); }); + it('handles short range replace', () => { + expect( + hexScheme.getNewValue({ + currentValue: '~> 0.4', + rangeStrategy: 'replace', + currentVersion: '0.4.2', + newVersion: '0.6.0', + }) + ).toEqual('~> 0.6'); + }); }); diff --git a/lib/versioning/hex/index.ts b/lib/versioning/hex/index.ts index 9482680515..10e475f605 100644 --- a/lib/versioning/hex/index.ts +++ b/lib/versioning/hex/index.ts @@ -76,9 +76,8 @@ const getNewValue = ({ ); } else if (/~>\s*(\d+\.\d+)$/.test(currentValue)) { newSemver = newSemver.replace( - /\^\s*(\d+\.\d+)/, - (_str, p1: string) => - `~> ${rangeStrategy === 'bump' ? p1 : p1.slice(0, -2)}` + /\^\s*(\d+\.\d+)(\.\d+)?/, + (_str, p1: string) => `~> ${p1}` ); } else { newSemver = newSemver.replace(/~\s*(\d+\.\d+\.\d)/, '~> $1'); -- GitLab