PowerShell/test/powershell/Modules/Microsoft.PowerShell.Utility/Write-Verbose.Tests.ps1

47 lines
1.5 KiB
PowerShell

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
Describe "Write-Verbose" -Tags "CI" {
It "Should be able to call cmdlet without error" {
{ Write-Verbose -Message "test" -ErrorAction SilentlyContinue } | Should -Not -Throw
}
It "Should not display verbose output by default" {
$VerbosePreference | Should -Be SilentlyContinue
Write-Verbose -Message "test" | Should -BeNullOrEmpty
}
It "Should be able to set verbose output to display by changing the `$VerbosePreference automatic variable" {
$VerbosePreference = "Continue"
Write-Verbose -Message "test" 4>&1 | Should -Not -BeNullOrEmpty
$VerbosePreference = "SilentlyContinue"
}
It "Should be able to set verbose output to display by using the verbose switch" {
Write-Verbose -Message "test" -Verbose 4>&1 | Should -BeExactly "test"
}
It "Should be able to set verbose switch using a colon and boolean" {
{ Write-Verbose -Message "test" -Verbose:$false } | Should -Not -Throw
$(Write-Verbose -Message "test" -Verbose:$true) 4>&1 | Should -BeExactly "test"
}
It "Should not have added line breaks" {
$text = "0123456789"
while ($text.Length -lt [Console]::WindowWidth) {
$text += $text
}
$origVerbosePref = $VerbosePreference
$VerbosePreference = "continue"
try {
$out = Write-Verbose $text 4>&1
$out | Should -BeExactly $text
}
finally {
$VerbosePreference = $origVerbosePref
}
}
}