From db5bd663432b18f1a71fc3448567a5301ae48119 Mon Sep 17 00:00:00 2001
From: Jack Bates <jack@nottheoilrig.com>
Date: Tue, 10 May 2022 11:21:41 -0700
Subject: [PATCH] Fix e2e test

---
 .github/workflows/versions.yml |  8 ++++++++
 __tests__/installer.test.ts    | 16 ++++++++--------
 dist/setup/index.js            |  4 ++--
 src/installer.ts               |  4 ++--
 4 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml
index 1d349d17..3f963491 100644
--- a/.github/workflows/versions.yml
+++ b/.github/workflows/versions.yml
@@ -42,6 +42,14 @@ jobs:
         uses: ./
         with:
           node-version: ${{ matrix.node-version }}
+          check-latest: true
+      - if: runner.os != 'Windows'
+        name: Verify node and npm
+        run: |
+          . "$NVM_DIR/nvm.sh"
+          [[ $(nvm version-remote "${{ matrix.node-version }}") =~ ^v([^.]+) ]]
+          __tests__/verify-node.sh "${BASH_REMATCH[1]}"
+        shell: bash
 
   manifest:
     runs-on: ${{ matrix.os }}
diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts
index cc3c5d79..de096e54 100644
--- a/__tests__/installer.test.ts
+++ b/__tests__/installer.test.ts
@@ -817,9 +817,9 @@ describe('setup-node', () => {
       );
     });
 
-    it('find latest LTS version and resolve it from local cache (lts/-2)', async () => {
+    it('find latest LTS version and resolve it from local cache (lts/-1)', async () => {
       // arrange
-      inputs['node-version'] = 'lts/-2';
+      inputs['node-version'] = 'lts/-1';
 
       const toolPath = path.normalize('/cache/node/12.16.2/x64');
       findSpy.mockReturnValue(toolPath);
@@ -836,10 +836,10 @@ describe('setup-node', () => {
       );
       expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
       expect(dbgSpy).toHaveBeenCalledWith(
-        `LTS alias '-2' for Node version 'lts/-2'`
+        `LTS alias '-1' for Node version 'lts/-1'`
       );
       expect(dbgSpy).toHaveBeenCalledWith(
-        `Found LTS release '12.16.2' for Node version 'lts/-2'`
+        `Found LTS release '12.16.2' for Node version 'lts/-1'`
       );
       expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
       expect(cnSpy).toHaveBeenCalledWith(
@@ -847,9 +847,9 @@ describe('setup-node', () => {
       );
     });
 
-    it('find latest LTS version and install it from manifest (lts/-2)', async () => {
+    it('find latest LTS version and install it from manifest (lts/-1)', async () => {
       // arrange
-      inputs['node-version'] = 'lts/-2';
+      inputs['node-version'] = 'lts/-1';
 
       const toolPath = path.normalize('/cache/node/12.16.2/x64');
       findSpy.mockImplementation(() => '');
@@ -871,10 +871,10 @@ describe('setup-node', () => {
       );
       expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
       expect(dbgSpy).toHaveBeenCalledWith(
-        `LTS alias '-2' for Node version 'lts/-2'`
+        `LTS alias '-1' for Node version 'lts/-1'`
       );
       expect(dbgSpy).toHaveBeenCalledWith(
-        `Found LTS release '12.16.2' for Node version 'lts/-2'`
+        `Found LTS release '12.16.2' for Node version 'lts/-1'`
       );
       expect(logSpy).toHaveBeenCalledWith('Attempting to download 12...');
       expect(logSpy).toHaveBeenCalledWith(
diff --git a/dist/setup/index.js b/dist/setup/index.js
index 092482dc..e5523320 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -70761,8 +70761,8 @@ function resolveLtsAliasFromManifest(versionSpec, stable, manifest) {
     // Supported formats are `lts/<alias>`, `lts/*`, and `lts/-n`. Where asterisk means highest possible LTS and -n means the nth-highest.
     const n = Number(alias);
     const aliases = Object.fromEntries(manifest
-        .filter(x => x.stable === stable)
-        .map(x => { var _a; return [(_a = x.lts) === null || _a === void 0 ? void 0 : _a.toLowerCase(), x]; }));
+        .filter(x => x.lts && x.stable === stable)
+        .map(x => [x.lts.toLowerCase(), x]));
     const numbered = Object.values(aliases);
     const release = alias === '*'
         ? numbered[numbered.length - 1]
diff --git a/src/installer.ts b/src/installer.ts
index 9ee68f86..92febe88 100644
--- a/src/installer.ts
+++ b/src/installer.ts
@@ -229,8 +229,8 @@ function resolveLtsAliasFromManifest(
   const n = Number(alias);
   const aliases = Object.fromEntries(
     manifest
-      .filter(x => x.stable === stable)
-      .map(x => [x.lts?.toLowerCase(), x])
+      .filter(x => x.lts && x.stable === stable)
+      .map(x => [x.lts!.toLowerCase(), x])
   );
   const numbered = Object.values(aliases);
   const release =