From 20838dd9776f0bbd6ccf57ac26080f50b4c61824 Mon Sep 17 00:00:00 2001
From: Dmitry Shibanov <shibanov-1997@inbox.ru>
Date: Thu, 13 Oct 2022 15:50:46 +0200
Subject: [PATCH] testing: add possible fixes

---
 dist/setup/index.js | 8 ++++----
 src/installer.ts    | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/dist/setup/index.js b/dist/setup/index.js
index 53dfb0e9..6ee7f6f9 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -73208,11 +73208,11 @@ function getNode(versionSpec, stable, checkLatest, auth, arch = os.arch()) {
             versionSpec = yield queryDistForMatch(versionSpec, arch, nodeVersions);
             core.info(`getting latest node version...`);
         }
-        if (isNightly) {
+        if (isNightly && checkLatest) {
             nodeVersions = yield getVersionsFromDist(versionSpec);
             versionSpec = yield queryDistForMatch(versionSpec, arch, nodeVersions);
         }
-        if (checkLatest) {
+        if (checkLatest && !isNightly) {
             core.info('Attempt to resolve the latest version from manifest...');
             const resolvedVersion = yield resolveVersionFromManifest(versionSpec, stable, auth, osArch, manifest);
             if (resolvedVersion) {
@@ -73416,7 +73416,7 @@ function evaluateVersions(versions, versionSpec) {
     core.debug(`evaluating ${versions.length} versions`);
     core.debug(`version 1 is ${versions[0]}`);
     core.debug(`version spec is ${versionSpec}`);
-    versions = versions.map(item => item.replace('nightly', 'nightly.')).sort((a, b) => {
+    versions = versions.map(item => item.replace('-nightly', '+nightly.')).sort((a, b) => {
         if (semver.gt(a, b)) {
             return 1;
         }
@@ -73424,7 +73424,7 @@ function evaluateVersions(versions, versionSpec) {
     });
     for (let i = versions.length - 1; i >= 0; i--) {
         const potential = versions[i];
-        const satisfied = semver.satisfies(potential, versionSpec);
+        const satisfied = semver.satisfies(potential, versionSpec.replace('-', '+'));
         if (satisfied) {
             version = potential;
             break;
diff --git a/src/installer.ts b/src/installer.ts
index c7e700b8..375b1894 100644
--- a/src/installer.ts
+++ b/src/installer.ts
@@ -58,12 +58,12 @@ export async function getNode(
     core.info(`getting latest node version...`);
   }
 
-  if (isNightly) {
+  if (isNightly && checkLatest) {
     nodeVersions = await getVersionsFromDist(versionSpec);
     versionSpec = await queryDistForMatch(versionSpec, arch, nodeVersions);
   }
 
-  if (checkLatest) {
+  if (checkLatest && !isNightly) {
     core.info('Attempt to resolve the latest version from manifest...');
     const resolvedVersion = await resolveVersionFromManifest(
       versionSpec,
@@ -353,7 +353,7 @@ function evaluateVersions(versions: string[], versionSpec: string): string {
   core.debug(`evaluating ${versions.length} versions`);
   core.debug(`version 1 is ${versions[0]}`);
   core.debug(`version spec is ${versionSpec}`);
-  versions = versions.map(item => item.replace('nightly', 'nightly.')).sort((a, b) => {
+  versions = versions.map(item => item.replace('-nightly', '+nightly.')).sort((a, b) => {
     if (semver.gt(a, b)) {
       return 1;
     }
@@ -361,7 +361,7 @@ function evaluateVersions(versions: string[], versionSpec: string): string {
   });
   for (let i = versions.length - 1; i >= 0; i--) {
     const potential: string = versions[i];
-    const satisfied: boolean = semver.satisfies(potential, versionSpec);
+    const satisfied: boolean = semver.satisfies(potential, versionSpec.replace('-', '+'));
     if (satisfied) {
       version = potential;
       break;