Tests/Unit/Show-Diagnostic.Tests.ps1

# Generated by tools\Build-PublicUnitTests.ps1. Re-run to regenerate.
BeforeAll {

$ProjectRoot = Split-Path -Parent (Split-Path -Parent $PSScriptRoot)
$ModulePath  = Join-Path $ProjectRoot 'GitEasy.psd1'
}

Describe 'Show-Diagnostic (unit contract)' {

    BeforeAll {
        Remove-Module GitEasy -Force -ErrorAction SilentlyContinue
        Import-Module $ModulePath -Force
    }

    It 'is exported by the GitEasy module' {
        @(Get-Command -Module GitEasy -Name 'Show-Diagnostic').Count | Should -Be 1
    }

    It 'has CmdletBinding' {
        $cmd = Get-Command 'Show-Diagnostic'
        $cmd.CmdletBinding | Should -Be $true
    }

    It 'declares the -List parameter' {
        $cmd = Get-Command 'Show-Diagnostic'
        $cmd.Parameters.ContainsKey('List') | Should -Be $true
    }

    It '-List is a switch parameter' {
        $cmd = Get-Command 'Show-Diagnostic'
        $cmd.Parameters['List'].ParameterType.Name | Should -Be 'SwitchParameter'
    }

    It 'declares the -All parameter' {
        $cmd = Get-Command 'Show-Diagnostic'
        $cmd.Parameters.ContainsKey('All') | Should -Be $true
    }

    It '-All is a switch parameter' {
        $cmd = Get-Command 'Show-Diagnostic'
        $cmd.Parameters['All'].ParameterType.Name | Should -Be 'SwitchParameter'
    }

    It 'declares the -Count parameter' {
        $cmd = Get-Command 'Show-Diagnostic'
        $cmd.Parameters.ContainsKey('Count') | Should -Be $true
    }

    It 'declares the -LogPath parameter' {
        $cmd = Get-Command 'Show-Diagnostic'
        $cmd.Parameters.ContainsKey('LogPath') | Should -Be $true
    }

    It 'has a non-empty .SYNOPSIS' {
        $help = Get-Help 'Show-Diagnostic' -ErrorAction SilentlyContinue
        $help.Synopsis | Should -Not -BeNullOrEmpty
    }

    It 'has at least one .EXAMPLE in CBH' {
        $help = Get-Help 'Show-Diagnostic' -Full -ErrorAction SilentlyContinue
        @($help.examples.example).Count -gt 0 | Should -Be $true
    }
}