From 0951bf5bcd0acdb23c657435ccc4e2afa6e8b281 Mon Sep 17 00:00:00 2001 From: DeveloperDurp Date: Tue, 29 Nov 2022 23:27:36 +0000 Subject: [PATCH] Fix multiple winget entry in json file (#405) * Update Branch in script * add logic to split ; delimiter * Update Branch in script * update tests * Update Branch in script * Update winutil.ps1 * Update Branch in script * Update winutil.ps1 * Update Branch in script Co-authored-by: DeveloperDurp Co-authored-by: Chris Titus Co-authored-by: ChrisTitusTech --- pester/winutil.Tests.ps1 | 24 +++++++++++++++++++++--- runspace.ps1 | 2 +- winutil.ps1 | 15 +++++++++------ 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/pester/winutil.Tests.ps1 b/pester/winutil.Tests.ps1 index 8f05f6f9..ac4d27be 100644 --- a/pester/winutil.Tests.ps1 +++ b/pester/winutil.Tests.ps1 @@ -193,8 +193,26 @@ Describe "GUI Functions" { It "Get-CheckBoxes Install should return data" { . .\pester.ps1 - $WPFInstallvc2015_32.ischecked = $true - (Get-CheckBoxes -Group WPFInstall) | should -Not -BeNullOrEmpty - $WPFInstallvc2015_32.ischecked | should -be $false + $TestCheckBoxes = @( + "WPFInstallvc2015_32" + "WPFInstallvscode" + "WPFInstallgit" + ) + + $OutputResult = New-Object System.Collections.Generic.List[System.Object] + $TestCheckBoxes | ForEach-Object { + + $global:configs.applications.Install.$psitem.winget -split ";" | ForEach-Object { + $OutputResult.Add($psitem) + } + } + $OutputResult = Sort-Object -InputObject $OutputResult + + $TestCheckBoxes | ForEach-Object {(Get-Variable $PSItem).value.ischecked = $true} + $Output = Get-CheckBoxes -Group WPFInstall | Sort-Object + $Output | should -Not -BeNullOrEmpty -Because "Output did not containe applications to install" + $Output | Should -Not -Be $OutputResult -Because "Output contains duplicate values" + $Output | Should -Be $($OutputResult | Select-Object -Unique | Sort-Object) -Because "Output doesn't match" + $TestCheckBoxes | ForEach-Object {(Get-Variable $PSItem).value.ischecked | should -be $false} } } \ No newline at end of file diff --git a/runspace.ps1 b/runspace.ps1 index 6ffbb41e..fa0ce36d 100644 --- a/runspace.ps1 +++ b/runspace.ps1 @@ -1,5 +1,5 @@ #for CI/CD -$BranchToUse = 'test' +$BranchToUse = 'hotfix/applications' <# .NOTES diff --git a/winutil.ps1 b/winutil.ps1 index 6d4c8890..2e69b8e2 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -1,5 +1,5 @@ #for CI/CD -$BranchToUse = 'main' +$BranchToUse = 'hotfix/applications' <# .NOTES Author : Chris Titus @christitustech @@ -117,14 +117,17 @@ Function Get-CheckBoxes { if($Group -eq "WPFInstall"){ Foreach ($CheckBox in $CheckBoxes){ - if($checkbox.value.ischecked -eq $true){ - $output.Add("$($configs.applications.install.$($checkbox.name).winget)") - $checkbox.value.ischecked = $false + if($CheckBox.value.ischecked -eq $true){ + $Configs.applications.install.$($CheckBox.name).winget -split ";" | ForEach-Object { + $Output.Add($psitem) + } + + $CheckBox.value.ischecked = $false } } } - - Write-Output $Output + + Write-Output $($Output | Select-Object -Unique) } #===========================================================================