Skip to content

Commit 8808298

Browse files
feat: refactor test suite handling to improve settings structure and output management
1 parent cca4a29 commit 8808298

1 file changed

Lines changed: 36 additions & 25 deletions

File tree

scripts/main.ps1

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -178,12 +178,16 @@ LogGroup 'Calculate Job Run Conditions:' {
178178
# Get-TestSuites
179179
if ($settings.Test.Skip) {
180180
Write-Host 'Skipping all tests.'
181-
Set-GitHubOutput -Name SourceCodeTestSuites -Value '[]'
182-
Set-GitHubOutput -Name PSModuleTestSuites -Value '[]'
183-
Set-GitHubOutput -Name ModuleTestSuites -Value '[]'
184-
$sourceCodeTestSuites = '[]'
185-
$psModuleTestSuites = '[]'
186-
$moduleTestSuites = '[]'
181+
$sourceCodeTestSuites = $null
182+
$psModuleTestSuites = $null
183+
$moduleTestSuites = $null
184+
185+
# Add TestSuites to settings
186+
$settings | Add-Member -MemberType NoteProperty -Name TestSuites -Value ([pscustomobject]@{
187+
SourceCode = $null
188+
PSModule = $null
189+
Module = $null
190+
})
187191
} else {
188192

189193
# Define test configurations as an array of hashtables.
@@ -194,27 +198,29 @@ if ($settings.Test.Skip) {
194198
LogGroup 'Source Code Test Suites:' {
195199
$sourceCodeTestSuites = if ($settings.Test.SourceCode.Skip) {
196200
Write-Host 'Skipping all source code tests.'
201+
$null
197202
} else {
198-
if (-not $settings.Test.Linux.Skip -and -not $settings.Test.SourceCode.Linux.Skip) { $linux }
199-
if (-not $settings.Test.MacOS.Skip -and -not $settings.Test.SourceCode.MacOS.Skip) { $macOS }
200-
if (-not $settings.Test.Windows.Skip -and -not $settings.Test.SourceCode.Windows.Skip) { $windows }
203+
$result = @()
204+
if (-not $settings.Test.Linux.Skip -and -not $settings.Test.SourceCode.Linux.Skip) { $result += $linux }
205+
if (-not $settings.Test.MacOS.Skip -and -not $settings.Test.SourceCode.MacOS.Skip) { $result += $macOS }
206+
if (-not $settings.Test.Windows.Skip -and -not $settings.Test.SourceCode.Windows.Skip) { $result += $windows }
207+
if ($result.Count -gt 0) { $result } else { $null }
201208
}
202209
$sourceCodeTestSuites | Format-Table -AutoSize | Out-String
203-
$sourceCodeTestSuites = ($null -ne $sourceCodeTestSuites) ? ($sourceCodeTestSuites | ConvertTo-Json -AsArray) : '[]'
204-
Set-GitHubOutput -Name SourceCodeTestSuites -Value $sourceCodeTestSuites
205210
}
206211

207212
LogGroup 'PSModule Test Suites:' {
208213
$psModuleTestSuites = if ($settings.Test.PSModule.Skip) {
209214
Write-Host 'Skipping all PSModule tests.'
215+
$null
210216
} else {
211-
if (-not $settings.Test.Linux.Skip -and -not $settings.Test.PSModule.Linux.Skip) { $linux }
212-
if (-not $settings.Test.MacOS.Skip -and -not $settings.Test.PSModule.MacOS.Skip) { $macOS }
213-
if (-not $settings.Test.Windows.Skip -and -not $settings.Test.PSModule.Windows.Skip) { $windows }
217+
$result = @()
218+
if (-not $settings.Test.Linux.Skip -and -not $settings.Test.PSModule.Linux.Skip) { $result += $linux }
219+
if (-not $settings.Test.MacOS.Skip -and -not $settings.Test.PSModule.MacOS.Skip) { $result += $macOS }
220+
if (-not $settings.Test.Windows.Skip -and -not $settings.Test.PSModule.Windows.Skip) { $result += $windows }
221+
if ($result.Count -gt 0) { $result } else { $null }
214222
}
215223
$psModuleTestSuites | Format-Table -AutoSize | Out-String
216-
$psModuleTestSuites = ($null -ne $psModuleTestSuites) ? ($psModuleTestSuites | ConvertTo-Json -AsArray) : '[]'
217-
Set-GitHubOutput -Name PSModuleTestSuites -Value $psModuleTestSuites
218224
}
219225

220226
LogGroup 'Module Local Test Suites:' {
@@ -294,9 +300,14 @@ if ($settings.Test.Skip) {
294300
}
295301
}
296302
$moduleTestSuites | Format-Table -AutoSize | Out-String
297-
$moduleTestSuites = ($null -ne $moduleTestSuites) ? ($moduleTestSuites | ConvertTo-Json -AsArray) : '[]'
298-
Set-GitHubOutput -Name ModuleTestSuites -Value $moduleTestSuites
299303
}
304+
305+
# Add TestSuites to settings
306+
$settings | Add-Member -MemberType NoteProperty -Name TestSuites -Value ([pscustomobject]@{
307+
SourceCode = $sourceCodeTestSuites
308+
PSModule = $psModuleTestSuites
309+
Module = $moduleTestSuites
310+
})
300311
}
301312

302313
# Calculate job-specific conditions and add to settings
@@ -305,17 +316,17 @@ LogGroup 'Calculate Job Run Conditions:' {
305316
$settings | Add-Member -MemberType NoteProperty -Name Run -Value ([pscustomobject]@{
306317
LintRepository = $isOpenOrUpdatedPR -and (-not $settings.Linter.Skip)
307318
BuildModule = $isNotAbandonedPR -and (-not $settings.Build.Module.Skip)
308-
TestSourceCode = $isNotAbandonedPR -and ($sourceCodeTestSuites -ne '[]')
309-
LintSourceCode = $isNotAbandonedPR -and ($sourceCodeTestSuites -ne '[]')
310-
TestModule = $isNotAbandonedPR -and ($psModuleTestSuites -ne '[]')
311-
BeforeAllModuleLocal = $isNotAbandonedPR -and ($moduleTestSuites -ne '[]')
312-
TestModuleLocal = $isNotAbandonedPR -and ($moduleTestSuites -ne '[]')
319+
TestSourceCode = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.SourceCode)
320+
LintSourceCode = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.SourceCode)
321+
TestModule = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.PSModule)
322+
BeforeAllModuleLocal = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.Module)
323+
TestModuleLocal = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.Module)
313324
AfterAllModuleLocal = $true # Always runs if Test-ModuleLocal was not skipped
314325
GetTestResults = $isNotAbandonedPR -and (-not $settings.Test.TestResults.Skip) -and (
315-
$sourceCodeTestSuites -ne '[]' -or $psModuleTestSuites -ne '[]' -or $moduleTestSuites -ne '[]'
326+
($null -ne $settings.TestSuites.SourceCode) -or ($null -ne $settings.TestSuites.PSModule) -or ($null -ne $settings.TestSuites.Module)
316327
)
317328
GetCodeCoverage = $isNotAbandonedPR -and (-not $settings.Test.CodeCoverage.Skip) -and (
318-
$psModuleTestSuites -ne '[]' -or $moduleTestSuites -ne '[]'
329+
($null -ne $settings.TestSuites.PSModule) -or ($null -ne $settings.TestSuites.Module)
319330
)
320331
PublishModule = $isPR -and (
321332
$isAbandonedPR -or

0 commit comments

Comments
 (0)