From ab71d7572d12d16d1cac52c431970c9b3acd7f05 Mon Sep 17 00:00:00 2001 From: freddydk Date: Sun, 26 Nov 2023 10:39:35 +0100 Subject: [PATCH] add test --- .../BuildReferenceDocumentation/action.yaml | 1 - ...uildReferenceDocumentation.Action.Test.ps1 | 64 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 Tests/BuildReferenceDocumentation.Action.Test.ps1 diff --git a/Actions/BuildReferenceDocumentation/action.yaml b/Actions/BuildReferenceDocumentation/action.yaml index cd0601296..dc7e3504b 100644 --- a/Actions/BuildReferenceDocumentation/action.yaml +++ b/Actions/BuildReferenceDocumentation/action.yaml @@ -17,7 +17,6 @@ runs: steps: - name: run shell: ${{ inputs.shell }} - id: BuildReferenceDocumentation env: _token: ${{ inputs.token }} _artifacts: ${{ inputs.artifacts }} diff --git a/Tests/BuildReferenceDocumentation.Action.Test.ps1 b/Tests/BuildReferenceDocumentation.Action.Test.ps1 new file mode 100644 index 000000000..d5e56711d --- /dev/null +++ b/Tests/BuildReferenceDocumentation.Action.Test.ps1 @@ -0,0 +1,64 @@ +Get-Module TestActionsHelper | Remove-Module -Force +Import-Module (Join-Path $PSScriptRoot 'TestActionsHelper.psm1') + +Describe "BuildReferenceDocumentation Action Tests" { + BeforeAll { + $actionName = "BuildReferenceDocumentation" + $scriptRoot = Join-Path $PSScriptRoot "..\Actions\$actionName" -Resolve + $scriptName = "$actionName.ps1" + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', 'scriptPath', Justification = 'False positive.')] + $scriptPath = Join-Path $scriptRoot $scriptName + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', 'actionScript', Justification = 'False positive.')] + $actionScript = GetActionScript -scriptRoot $scriptRoot -scriptName $scriptName + } + + It 'Compile Action' { + Invoke-Expression $actionScript + } + + It 'Test action.yaml matches script' { + $permissions = [ordered]@{ + } + $outputs = [ordered]@{ + } + YamlTest -scriptRoot $scriptRoot -actionName $actionName -actionScript $actionScript -permissions $permissions -outputs $outputs + } + + It 'CalculateProjectsAndApps' { + . (Join-Path $scriptRoot 'BuildReferenceDocumentation.HelperFunctions.ps1') + + Mock Get-ChildItem { + if ($directory) { + return @( + [PSCustomObject]@{ Name = 'P1-main-Apps-1.0.0.0'; FullName = Join-Path $path 'P1-main-Apps-1.0.0.0' } + [PSCustomObject]@{ Name = 'P2-main-Apps-1.0.0.0'; FullName = Join-Path $path 'P2-main-Apps-1.0.0.0' } + [PSCustomObject]@{ Name = 'P3-main-Apps-1.0.0.0'; FullName = Join-Path $path 'P3-main-Apps-1.0.0.0' } + [PSCustomObject]@{ Name = 'P4-main-Apps-1.0.0.0'; FullName = Join-Path $path 'P4-main-Apps-1.0.0.0' } + ) + } + else { + $project = $path.Substring($path.LastIndexOf('\')+1,2) + $noOfApps = [int]$project.substring(1,1) + $apps = @() + for($i=1; $i -le $noOfApps; $i++) { + $apps += [PSCustomObject]@{ FullName = Join-Path $path "$($project)_app$i.app" } + } + return $apps + } + } + + $allApps = CalculateProjectsAndApps -tempFolder 'c:\temp' -projects @('P1','P2') -excludeProjects @('P3') + $allApps.Count | Should -Be 2 + $allApps[0].Keys.Count | Should -be 1 + $allApps[0].ContainsKey('dummy') | Should -be $true + $allApps[0]."dummy".Count | Should -be 3 + + $allApps = CalculateProjectsAndApps -tempFolder 'c:\temp' -projects @('*') -excludeProjects @('P3') -useProjectsAsFolders + $allApps.Count | Should -Be 2 + $allApps[0].Keys.Count | Should -be 3 + $allApps[0].ContainsKey('dummy') | Should -be $false + $allApps[0]."P1".Count | Should -be 1 + $allApps[0]."P2".Count | Should -be 2 + $allApps[0]."P4".Count | Should -be 4 + } +}