From 8ba370a949a3fb909752fe11e2d286bd359c8f69 Mon Sep 17 00:00:00 2001 From: Uladzimir Havenchyk Date: Sun, 31 Jul 2022 17:34:23 +0300 Subject: [PATCH] Test output --- __tests__/installer.test.ts | 6 ++++++ src/main.ts | 40 +++++++++++++++++++++++++++---------- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index c1e16b5f..ee3ede79 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -41,6 +41,7 @@ describe('setup-node', () => { let parseNodeVersionSpy: jest.SpyInstance; let isCacheActionAvailable: jest.SpyInstance; let getExecOutputSpy: jest.SpyInstance; + let execExecSpy: jest.SpyInstance; beforeEach(() => { // @actions/core @@ -57,6 +58,7 @@ describe('setup-node', () => { archSpy = jest.spyOn(osm, 'arch'); archSpy.mockImplementation(() => os['arch']); execSpy = jest.spyOn(cp, 'execSync'); + execExecSpy = jest.spyOn(exec, 'exec'); // @actions/tool-cache findSpy = jest.spyOn(tc, 'find'); @@ -249,6 +251,10 @@ describe('setup-node', () => { let expPath = path.join(toolPath, 'bin'); + expect(execExecSpy).toHaveBeenCalledWith('node', ['--version']); + expect(execExecSpy).toHaveBeenCalledWith('npm', ['--version'], expect.anything()); + expect(execExecSpy).toHaveBeenCalledWith('yarn', ['--version'], expect.anything()); + expect(dlSpy).toHaveBeenCalled(); expect(exSpy).toHaveBeenCalled(); expect(logSpy).toHaveBeenCalledWith( diff --git a/src/main.ts b/src/main.ts index ac7e51f5..e47952c4 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,6 +6,7 @@ import * as auth from './authutil'; import * as path from 'path'; import {restoreCache} from './cache-restore'; import {isGhes, isCacheFeatureAvailable} from './cache-utils'; +import { URL } from 'url'; import os = require('os'); export async function run() { @@ -40,17 +41,7 @@ export async function run() { await installer.getNode(version, stable, checkLatest, auth, arch); } - // Output version of node is being used - try { - const {stdout: installedVersion} = await exec.getExecOutput( - 'node', - ['--version'], - {ignoreReturnCode: true, silent: true} - ); - core.setOutput('node-version', installedVersion.trim()); - } catch (err) { - core.setOutput('node-version', ''); - } + await printEnvDetailsAndSetOutput(); const registryUrl: string = core.getInput('registry-url'); const alwaysAuth: string = core.getInput('always-auth'); @@ -108,3 +99,30 @@ function resolveVersionInput(): string { return version; } + +async function printEnvDetailsAndSetOutput() { + const groupName = "Environment details"; + + core.startGroup(groupName); + // Output version of node is being used + try { + const {stdout: installedNodeVersion} = await exec.getExecOutput( + 'node', + ['--version'], + {ignoreReturnCode: true} + ); + core.setOutput('node-version', installedNodeVersion.trim()); + } catch (err) { + core.setOutput('node-version', ''); + } + + await exec.getExecOutput('npm', ['--version'], { + ignoreReturnCode: true + }); + + await exec.getExecOutput('yarn', ['--version'], { + ignoreReturnCode: true + }); + + core.endGroup(groupName); +}