Tests/Set-Secret.Tests.ps1
BeforeAll { Get-Module 'SecretManagement.CyberArk' | Remove-Module -Force Get-Module 'Microsoft.Powershell.SecretManagement' | Remove-Module -Force $ExtensionModule = Import-Module "$PSScriptRoot/../SecretManagement.CyberArk.Extension/*.psd1" -Force -PassThru $VaultName = 'CyberArk.Test' } AfterAll { Remove-Module $ExtensionModule -Force } Describe 'Set-Secret' { Context 'when connection method is REST' { BeforeAll { Register-SecretVault -Name $VaultName -ModuleName SecretManagement.CyberArk -VaultParameters @{ConnectionType = 'REST' } } It 'calls Add-PASAccount' { Mock Add-PASAccount -MockWith {} -ModuleName $ExtensionModule.Name Set-Secret -VaultName $VaultName -Name 'test' -AdditionalParameters @{PlatformId = 'Test'; SafeName = 'TestSafe' } -Secret ('test' | ConvertTo-SecureString -AsPlainText -Force) Should -Invoke -CommandName Add-PASAccount -ModuleName $ExtensionModule.Name } AfterAll { Unregister-SecretVault -Name $VaultName } } Context 'when connection type is Credential Provider' { It 'throws an error' { Register-SecretVault -Name $VaultName -ModuleName SecretManagement.CyberArk -VaultParameters @{ConnectionType = 'CredentialProvider' } { Set-Secret -Name 'admin' -VaultName $VaultName } | Should -Throw 'Set-Secret is not supported for Credential Provider' Unregister-SecretVault -Name $VaultName } } Context 'when connection type is Central Credential Provider' { It 'throws an error' { Register-SecretVault -Name $VaultName -ModuleName SecretManagement.CyberArk -VaultParameters @{ConnectionType = 'CentralCredentialProvider' } { Set-Secret -Name 'admin' -VaultName $VaultName } | Should -Throw 'Set-Secret is not supported for Central Credential Provider' Unregister-SecretVault -Name $VaultName } } } |