38 lines
1.7 KiB
PowerShell
38 lines
1.7 KiB
PowerShell
|
. $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
|
||
|
}
|
||
|
}
|