diff --git a/test/powershell/Modules/Microsoft.PowerShell.Utility/Set-Date.Tests.ps1 b/test/powershell/Modules/Microsoft.PowerShell.Utility/Set-Date.Tests.ps1 index 8a7f664e8..c5950aa71 100644 --- a/test/powershell/Modules/Microsoft.PowerShell.Utility/Set-Date.Tests.ps1 +++ b/test/powershell/Modules/Microsoft.PowerShell.Utility/Set-Date.Tests.ps1 @@ -1,22 +1,20 @@ -# first check to see which platform we're on. If we're on windows we should be able -# to be sure whether we're running elevated. If we're on Linux, we can use whoami to -# determine whether we're elevated -Describe "Set-Date" -Tag "CI" { - BeforeAll { - $IsElevated = Test-IsElevated - } - - It "Set-Date should be able to set the date in an elevated context" -Skip:(! $IsElevated) { +Describe "Set-Date for admin" -Tag @('CI', 'RequireAdminOnWindows') { + # Currently, CI tests on Linux/macOS are always run as normal user. So we need to skip these tests on non-Windows platform. + # CI tests in root privilege on Linux/macOS is not supported. + # See : https://github.com/PowerShell/PowerShell/issues/5645 + It "Set-Date should be able to set the date in an elevated context" -Skip:(!$IsWindows) { { Get-Date | Set-Date } | Should Not Throw } - It "Set-Date should be able to set the date with -Date parameter" -Skip:(! $IsElevated) { + It "Set-Date should be able to set the date with -Date parameter" -Skip:(!$IsWindows) { $target = Get-Date $expected = $target Set-Date -Date $target | Should Be $expected } +} - It "Set-Date should produce an error in a non-elevated context" -Skip:($IsElevated) { +Describe "Set-Date" -Tag 'CI' { + It "Set-Date should produce an error in a non-elevated context" { { Get-Date | Set-Date } | ShouldBeErrorId "System.ComponentModel.Win32Exception,Microsoft.PowerShell.Commands.SetDateCommand" } }