. $PSScriptRoot\..\..\Load-PesterModules.ps1 $here = Split-Path -Parent $MyInvocation.MyCommand.Path $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.tests\.', '.' $functionPath = Join-Path -Path $here -ChildPath $sut Write-Host "Overriding SUT: $functionPath" Import-Module $functionPath -Force $moduleForMock = "" Describe "Get-ChocoPackageFromPath" { Mock -ModuleName $moduleForMock -CommandName Write-Warning -MockWith {} Mock -ModuleName $moduleForMock -CommandName Get-ChocolateyInstallPath -MockWith { return "C:\ProgramData\chocolatey" } $ExpectedPackageId = "Alkami.PowerShell.AD" It "is empty if the path is garbage" { Get-ChocoPackageFromPath -Path "garbage" | Should -BeNullOrEmpty } It "is empty if the path is the choco folder" { Get-ChocoPackageFromPath -Path "C:\ProgramData\chocolatey" | Should -BeNullOrEmpty } It "is the wrong subfolder if it's not a package installation folder" { Get-ChocoPackageFromPath -Path "C:\PROGRAMDATA\Chocolatey\nonsense\Alkami.PowerShell.AD\" | Should -Be "nonsense" } It "is the package but is in the backup folder location" { Get-ChocoPackageFromPath -Path "C:\PROGRAMDATA\Chocolatey\lib-bkp\Alkami.PowerShell.AD\" | Should -Be $ExpectedPackageId } It "is the package that doesn't have a subfolder" { Get-ChocoPackageFromPath -Path "C:\PROGRAMDATA\Chocolatey\lib\Alkami.PowerShell.AD\" | Should -Be $ExpectedPackageId } It "is is the pacakge with a subfolder (and different case)" { Get-ChocoPackageFromPath -Path "C:\PROGRAMDATA\Chocolatey\lib\Alkami.PowerShell.AD\tools" | Should -Be $ExpectedPackageId } }