Tests/Unit/Public/Access/Revoke-SCASession.Tests.ps1
|
Import-Module (Join-Path $PSScriptRoot '../../../../psSCA.psd1') -Force Describe 'Revoke-SCASession' { InModuleScope psSCA { It 'revokes sessions by ID, collecting pipeline input into a single request' { Mock Invoke-SCARequest { } 'session-1', 'session-2' | Revoke-SCASession -Confirm:$false | Out-Null Should -Invoke Invoke-SCARequest -Times 1 -Exactly -ParameterFilter { $Path -eq '/access/sessions/revoke' -and (Compare-Object $Body['sessionIds'] @('session-1', 'session-2') | Measure-Object).Count -eq 0 } } It 'revokes all sessions for a user via -UserId' { Mock Invoke-SCARequest { } Revoke-SCASession -UserId 'user-123' -Confirm:$false | Out-Null Should -Invoke Invoke-SCARequest -ParameterFilter { $Path -eq '/access/users/{userId}/sessions/revoke' -and $PathParameters['userId'] -eq 'user-123' } } It 'makes no call when no session IDs are piped in' { Mock Invoke-SCARequest { } @() | Revoke-SCASession -Confirm:$false | Out-Null Should -Invoke Invoke-SCARequest -Times 0 -Exactly } It 'does not call Invoke-SCARequest when -WhatIf is specified' { Mock Invoke-SCARequest { } Revoke-SCASession -SessionId 'session-1' -WhatIf | Out-Null Should -Invoke Invoke-SCARequest -Times 0 -Exactly } } } |