tests/Test-WriteBootstrapLog.Tests.ps1

Describe "Write-BootstrapLog" {
    BeforeAll { 
        # Import directly to make it available
        . "$PSScriptRoot/../private/Write-BootstrapLog.ps1"
    }
        It "Writes Info level message with prefix" {
            Mock Write-Host {}
            
            Write-BootstrapLog -Message "Test message"
            
            Should -Invoke Write-Host -ParameterFilter { 
                $Object -eq "[az-bootstrap] Test message"
            }
        }
        
        It "Writes Success level message with checkmark" {
            Mock Write-Host {}
            
            Write-BootstrapLog -Message "Success message" -Level Success
            
            Should -Invoke Write-Host -ParameterFilter { 
                $NoNewline -eq $true -and $ForegroundColor -eq 'Green' 
            }
            
            Should -Invoke Write-Host -ParameterFilter { 
                $Object -eq "[az-bootstrap] Success message" 
            }
        }
        
        It "Writes Warning level message" {
            Mock Write-Warning {}
            
            Write-BootstrapLog -Message "Warning message" -Level Warning
            
            Should -Invoke Write-Warning -ParameterFilter { 
                $Message -eq "[az-bootstrap] Warning message"
            }
        }
        
        It "Writes Error level message" {
            Mock Write-Error {}
            
            Write-BootstrapLog -Message "Error message" -Level Error
            
            Should -Invoke Write-Error -ParameterFilter { 
                $Message -eq "[az-bootstrap] Error message"
            }
        }
        
        It "Doesn't include prefix when NoPrefix is specified" {
            Mock Write-Host {}
            
            Write-BootstrapLog -Message "No prefix message" -NoPrefix
            
            Should -Invoke Write-Host -ParameterFilter { 
                $Object -eq "No prefix message"
            }
        }
}