Tests/VaultParameters.Tests.ps1
|
BeforeAll { Get-Module 'SecretManagement.CyberArk' | Remove-Module -Force Get-Module 'Microsoft.Powershell.SecretManagement' | Remove-Module -Force Import-Module Microsoft.PowerShell.SecretManagement $ExtensionModule = Import-Module "$PSScriptRoot/../SecretManagement.CyberArk.Extension/*.psd1" -Force -PassThru $VaultName = 'CyberArk.Test' $VaultParams = @{ConnectionType = 'REST' } Mock Get-PASSession -MockWith { [PSCustomObject]@{ BaseURI = 'https://pvwa' } } -ModuleName $ExtensionModule.Name Mock Get-PASAccount -MockWith { $null } -ModuleName $ExtensionModule.Name Mock Add-PASAccount -MockWith {} -ModuleName $ExtensionModule.Name Mock Get-SecretVault -MockWith { throw 'registry lookup should not be used' } -ModuleName $ExtensionModule.Name } AfterAll { Remove-Module $ExtensionModule -Force } Describe 'Vault parameters come from AdditionalParameters' { It 'Get-Secret does not re-read the vault registry' { Get-Secret -Name 'x' -VaultName $VaultName -AdditionalParameters $VaultParams -ErrorAction SilentlyContinue Should -Invoke -CommandName Get-SecretVault -ModuleName $ExtensionModule.Name -Times 0 -Exactly } It 'Get-SecretInfo does not re-read the vault registry' { Get-SecretInfo -Filter 'x' -VaultName $VaultName -AdditionalParameters $VaultParams -ErrorAction SilentlyContinue Should -Invoke -CommandName Get-SecretVault -ModuleName $ExtensionModule.Name -Times 0 -Exactly } It 'Remove-Secret does not re-read the vault registry' { Remove-Secret -Name 'x' -VaultName $VaultName -AdditionalParameters $VaultParams -ErrorAction SilentlyContinue Should -Invoke -CommandName Get-SecretVault -ModuleName $ExtensionModule.Name -Times 0 -Exactly } It 'Set-Secret does not re-read the vault registry' { Set-Secret -Name 'x' -Secret 'y' -VaultName $VaultName -AdditionalParameters $VaultParams -ErrorAction SilentlyContinue Should -Invoke -CommandName Get-SecretVault -ModuleName $ExtensionModule.Name -Times 0 -Exactly } It 'Test-SecretVault does not re-read the vault registry' { Test-SecretVault -VaultName $VaultName -AdditionalParameters $VaultParams | Should -BeTrue Should -Invoke -CommandName Get-SecretVault -ModuleName $ExtensionModule.Name -Times 0 -Exactly } } |