Tests/Security.Tests.ps1
|
#Requires -Modules Pester <# .SYNOPSIS Pester tests for Security cmdlets. #> BeforeAll { $ModulePath = Join-Path $PSScriptRoot '..' Get-Module JIM -ErrorAction SilentlyContinue | Remove-Module -Force Import-Module $ModulePath -Force } AfterAll { Get-Module JIM -ErrorAction SilentlyContinue | Remove-Module -Force } Describe 'Get-JIMRole' { Context 'Parameter Validation' { BeforeAll { $command = Get-Command Get-JIMRole } It 'Should not have mandatory parameters' { $mandatoryParams = $command.Parameters.Values | Where-Object { $_.Attributes | Where-Object { $_ -is [System.Management.Automation.ParameterAttribute] -and $_.Mandatory } } $mandatoryParams | Should -BeNullOrEmpty } } Context 'Requires Connection' { BeforeEach { Disconnect-JIM } It 'Should throw when not connected' { { Get-JIMRole } | Should -Throw '*Connect-JIM*' } } Context 'Help Documentation' { BeforeAll { $help = Get-Help Get-JIMRole -Full } It 'Should have a synopsis' { $help.Synopsis | Should -Not -BeNullOrEmpty } It 'Should have examples' { $help.Examples.Example.Count | Should -BeGreaterThan 0 } It 'Should have related links' { $help.RelatedLinks | Should -Not -BeNullOrEmpty } } } |