From ebb25349ae96ad04bb8f178b2e8991977edc8b10 Mon Sep 17 00:00:00 2001 From: Yun Lai <ylai@squareup.com> Date: Wed, 25 Jan 2023 17:33:40 +1100 Subject: [PATCH] fix: make HermitVersioning support semver range in matchCurrentVersion (#20030) --- lib/modules/versioning/hermit/index.spec.ts | 29 ++++++++++++++------- lib/modules/versioning/hermit/index.ts | 10 ++++++- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/lib/modules/versioning/hermit/index.spec.ts b/lib/modules/versioning/hermit/index.spec.ts index 75d8fc6ca6..46481606ac 100644 --- a/lib/modules/versioning/hermit/index.spec.ts +++ b/lib/modules/versioning/hermit/index.spec.ts @@ -81,16 +81,27 @@ describe('modules/versioning/hermit/index', () => { ); test.each` - version | other | expected - ${'@1'} | ${'@1.2'} | ${false} - ${'@1.2'} | ${'@1.2'} | ${true} - ${'@1.2.3'} | ${'@1.2'} | ${false} - ${'@latest'} | ${'@1'} | ${false} - ${'@stable'} | ${'@stable'} | ${true} + version | range | expected + ${'0.6.1'} | ${'>0.6.0 <0.7.0'} | ${true} + ${'0.6.1'} | ${'<0.7.0'} | ${true} + ${'0.6.1'} | ${'<=0.7.0'} | ${true} + ${'0.6.1'} | ${'>=0.6.0'} | ${true} + ${'0.6.1'} | ${'>0.6.0'} | ${true} + ${'0.6.1'} | ${'0.6.x'} | ${true} + ${'0.6.1'} | ${'0.6.*'} | ${true} + ${'0.6.1'} | ${'0.6.0 - 0.6.3'} | ${true} + ${'0.6.1'} | ${'~0.6'} | ${true} + ${'0.6.1'} | ${'0.6.1'} | ${true} + ${'0.0.6'} | ${'^0.0.6'} | ${true} + ${'@1'} | ${'@1.2'} | ${false} + ${'@1.2'} | ${'@1.2'} | ${true} + ${'@1.2.3'} | ${'@1.2'} | ${false} + ${'@latest'} | ${'@1'} | ${false} + ${'@stable'} | ${'@stable'} | ${true} `( - 'matches("$version", "$other") === $expected', - ({ version, other, expected }) => { - expect(versioning.matches(version, other)).toBe(expected); + 'matches("$version", "$range") === $expected', + ({ version, range, expected }) => { + expect(versioning.matches(version, range)).toBe(expected); } ); diff --git a/lib/modules/versioning/hermit/index.ts b/lib/modules/versioning/hermit/index.ts index f78b78f8dc..940f1e5e8d 100644 --- a/lib/modules/versioning/hermit/index.ts +++ b/lib/modules/versioning/hermit/index.ts @@ -1,3 +1,4 @@ +import { satisfies } from 'semver'; import { RegExpVersion, RegExpVersioningApi } from '../regex'; import type { VersioningApiConstructor } from '../types'; @@ -173,7 +174,14 @@ export class HermitVersioning extends RegExpVersioningApi { } override matches(version: string, range: string): boolean { - return this.equals(version, range); + if ( + HermitVersioning._isChannel(version) && + HermitVersioning._isChannel(range) + ) { + return this.equals(version, range); + } + + return satisfies(version, range); } } -- GitLab