From 2f1f11a872b9b6ff06c627b3ff0199e97911a6ff Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sun, 18 Feb 2024 09:52:03 +0100
Subject: [PATCH] fix(lookup): try to match against allVersions first (#27383)

---
 .../repository/process/lookup/current.ts      | 23 +++++++++++++------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/lib/workers/repository/process/lookup/current.ts b/lib/workers/repository/process/lookup/current.ts
index 96fa560d51..31de0bbdbe 100644
--- a/lib/workers/repository/process/lookup/current.ts
+++ b/lib/workers/repository/process/lookup/current.ts
@@ -15,12 +15,6 @@ export function getCurrentVersion(
   if (!is.string(currentValue)) {
     return null;
   }
-  if (versioning.isVersion(currentValue)) {
-    return currentValue;
-  }
-  if (versioning.isSingleVersion(currentValue)) {
-    return currentValue.replace(regEx(/=/g), '').trim();
-  }
   logger.trace(`currentValue ${currentValue} is range`);
   let useVersions = allVersions.filter((v) =>
     versioning.matches(v, currentValue),
@@ -41,5 +35,20 @@ export function getCurrentVersion(
     return versioning.minSatisfyingVersion(useVersions, currentValue);
   }
   // Use the highest version in the current range
-  return versioning.getSatisfyingVersion(useVersions, currentValue);
+  const satisfyingVersion = versioning.getSatisfyingVersion(
+    useVersions,
+    currentValue,
+  );
+  if (satisfyingVersion) {
+    return satisfyingVersion;
+  }
+
+  if (versioning.isVersion(currentValue)) {
+    return currentValue;
+  }
+  if (versioning.isSingleVersion(currentValue)) {
+    return currentValue.replace(regEx(/=/g), '').trim();
+  }
+
+  return null;
 }
-- 
GitLab