inspec/test/kitchen/policies/default/controls/powershell_spec.rb
Miah Johnson e8ae9012ea Move inspec-verify kitchen tests into more obvious directory
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-10-16 22:41:03 -07:00

40 lines
1.1 KiB
Ruby

unless os.windows?
$stderr.puts "\033[1;33mTODO: Not running #{__FILE__} because we are not on Windows.\033[0m"
return
end
script = <<-EOH
Write-Output 'hello'
EOH
# Write-Output comes with a newline
describe powershell(script) do
its('stdout') { should eq "hello\r\n" }
its('stderr') { should eq '' }
end
# remove whitespace \r\n from stdout
describe powershell(script) do
its('strip') { should eq "hello" }
end
# legacy test with `script` resource
describe script(script) do
its('stdout') { should eq "hello\r\n" }
its('stderr') { should eq '' }
end
# -NoNewLine only works in powershell 5
# @see https://blogs.technet.microsoft.com/heyscriptingguy/2015/08/07/the-powershell-5-nonewline-parameter/
describe powershell("'hello' | Write-Host -NoNewLine") do
its('stdout') { should eq 'hello' }
its('stderr') { should eq '' }
end
# test stderr
describe powershell("Write-Error \"error\"") do
its('stdout') { should eq '' }
# this is an xml error for now, if the script is run via WinRM
# @see https://github.com/WinRb/WinRM/issues/106
# its('stderr') { should eq 'error' }
end