ps/Modules/Alkami.DevOps.Installation/Public/Update-Borg.Tests.ps1
2023-05-30 22:51:22 -07:00

60 lines
2.3 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 = ""
$currentErrorActionPreference = $ErrorActionPreference
$ErrorActionPreference = "stop"
Describe "Update-Borg" {
Mock -CommandName Write-Host -MockWith {}
Mock -CommandName Write-Error -MockWith {}
$packageData = New-PackageMetadataObject
$packageData.DisableMicroserviceNewRelic = $false
$appPackage1 = New-DummyPackageInstallationData -PackageName "app.package1" -PackageVersion "1.0.0" -IsFullScale
$appPackage2 = New-DummyPackageInstallationData -PackageName "app.package2" -PackageVersion "1.0.0" -IsFullScale
$packageArray = @($appPackage1, $appPackage2)
$packageData.AppPackagesToInstall = $packageArray
$packageData.EnvironmentLabel = "UnitTest"
Mock -CommandName Update-PlatformElementInventory -MockWith {
# No third case necessary; This function doesn't return. Just does its thing silently.
write-host "params: $borgUri, $ApiKey"
if ($BorgUri -like "*Fake*"){
throw "Got a fake URI"
} elseif ($ApiKey -like "*Fake*"){
throw "Got a fake API key"
}
}
Context "When Given Invalid Borg Connection Info" {
It "Writes an Error on a bad URI" {
{ Update-Borg -BorgApiKey "ValidKey" -BorgUri "FakeUri" -PackageMetadata $packageData } | Should -Not -Throw
}
It "Writes an Error given an empty URI"{
Update-Borg -BorgApiKey "ValidKey" -BorgUri "" -PackageMetadata $packageData
Assert-MockCalled -CommandName Write-Error -Scope Context -Times 1
}
It "Writes an Error on a bad API Key"{
{ Update-Borg -BorgApiKey "FakeKey" -BorgUri "ValidUri" -PackageMetadata $packageData } | Should -Not -Throw
}
}
Context "When Given Valid Info"{
It "Updates Borg" {
Update-Borg -BorgApiKey "ValidKey" -BorgUri "ValidUri" -PackageMetadata $packageData
Assert-MockCalled -CommandName Write-Host -Times 1 -ParameterFilter {$object -eq "BoRG successfully updated."}
}
}
}