From c8cf9cb4b5058a36ec0a7d5f47519e6b7161de63 Mon Sep 17 00:00:00 2001 From: gowridurgad <159780674+gowridurgad@users.noreply.github.com> Date: Tue, 9 Jul 2024 20:31:27 +0530 Subject: [PATCH] Implementing Runner-Specific Node.js Tests (#178) * Update Node.Tests.ps1 * Update Node.Tests.ps1 * Update Node.Tests.ps1 --------- Co-authored-by: aparnajyothi-y <147696841+aparnajyothi-y@users.noreply.github.com> --- tests/Node.Tests.ps1 | 55 +++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/tests/Node.Tests.ps1 b/tests/Node.Tests.ps1 index 97d671ae..dbc2beaa 100644 --- a/tests/Node.Tests.ps1 +++ b/tests/Node.Tests.ps1 @@ -1,20 +1,23 @@ Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1") -BeforeAll { - function Get-UseNodeLogs { - # GitHub Windows images don't have `HOME` variable - $homeDir = $env:HOME ?? $env:HOMEDRIVE - $logsFolderPath = Join-Path -Path $homeDir -ChildPath "runners/*/_diag/pages" -Resolve - - $useNodeLogFile = Get-ChildItem -Path $logsFolderPath | Where-Object { - $logContent = Get-Content $_.Fullname -Raw - return $logContent -match "setup-node@v" - } | Select-Object -First 1 - return $useNodeLogFile.Fullname - } -} + Describe "Node.js" { + + BeforeAll { + function Get-UseNodeLogs { + # GitHub Windows images don't have `HOME` variable + $homeDir = $env:HOME ?? $env:HOMEDRIVE + $logsFolderPath = Join-Path -Path $homeDir -ChildPath "runners/*/_diag/pages" -Resolve + + $useNodeLogFile = Get-ChildItem -Path $logsFolderPath | Where-Object { + $logContent = Get-Content $_.Fullname -Raw + return $logContent -match "setup-node@v" + } | Select-Object -First 1 + return $useNodeLogFile.Fullname + } + } + It "is available" { "node --version" | Should -ReturnZeroExitCode } @@ -34,15 +37,25 @@ Describe "Node.js" { $nodePath.startsWith($expectedPath) | Should -BeTrue -Because "'$nodePath' is not started with '$expectedPath'" } - It "cached version is used without downloading" { - # Analyze output of previous steps to check if Node.js was consumed from cache or downloaded - $useNodeLogFile = Get-UseNodeLogs - $useNodeLogFile | Should -Exist - $useNodeLogContent = Get-Content $useNodeLogFile -Raw - $useNodeLogContent | Should -Match "Found in cache" - } + It "cached version is used without downloading" { + if ($env:RUNNER_TYPE -eq "self-hosted") { + # Get the installed version of Node.js + $nodeVersion = Invoke-Expression "node --version" + # Check if Node.js is installed + $nodeVersion | Should -Not -BeNullOrEmpty + # Check if the installed version of Node.js is the expected version + $nodeVersion | Should -Match $env:VERSION + }else { + # Analyze output of previous steps to check if Node.js was consumed from cache or downloaded + $useNodeLogFile = Get-UseNodeLogs + $useNodeLogFile | Should -Exist + $useNodeLogContent = Get-Content $useNodeLogFile -Raw + $useNodeLogContent | Should -Match "Found in cache" + } + } + It "Run simple code" { "node ./simple-test.js" | Should -ReturnZeroExitCode } -} \ No newline at end of file +}