Tests/GenXdev.Data.Preferences/Remove-GenXdevPreference.Tests.ps1
|
Pester\Describe 'Remove-GenXdevPreference' { Pester\BeforeAll { GenXdev\Remove-GenXdevPreference -Name 'TestPref1' -RemoveDefault } Pester\AfterAll { GenXdev\Remove-GenXdevPreference -Name 'TestPref1' -RemoveDefault } Pester\BeforeEach { Microsoft.PowerShell.Utility\Write-Verbose 'Setting up test data' GenXdev\Remove-GenXdevPreference -Name 'TestPref1' -RemoveDefault GenXdev\Set-GenXdevPreference -Name 'TestPref1' -Value 'LocalValue' GenXdev\Set-GenXdevDefaultPreference -Name 'TestPref1' -Value 'DefaultValue' } Pester\It 'Should remove local preference' { GenXdev\Remove-GenXdevPreference -Name 'TestPref1' $result = GenXdev\Get-GenXdevPreference -Name 'TestPref1' $result | Pester\Should -Be 'DefaultValue' # Falls back to default } Pester\It 'Should remove both local and default preferences with -RemoveDefault' { GenXdev\Remove-GenXdevPreference -Name 'TestPref1' -RemoveDefault $result = GenXdev\Get-GenXdevPreference -Name 'TestPref1' $result | Pester\Should -BeNullOrEmpty } Pester\It 'Should not error when removing non-existent preference' { { GenXdev\Remove-GenXdevPreference -Name 'NonExistent' } | Pester\Should -Not -Throw } Pester\It 'Should remove preference from OneDrive with -AllMachines' { $oneDrive = [System.Environment]::GetEnvironmentVariable('OneDrive') if (-not $oneDrive) { Pester\Set-ItResult -Skipped -Because 'OneDrive not available' return } $oneDriveFile = Microsoft.PowerShell.Management\Join-Path $oneDrive 'GenXdev\Defaults_Preferences.json' # Set a value with -AllMachines to create the OneDrive entry GenXdev\Set-GenXdevPreference -Name 'RemoveODTest' -Value 'ToRemove' -AllMachines GenXdev\Remove-GenXdevPreference -Name 'RemoveODTest' -RemoveDefault -AllMachines # Verify OneDrive file no longer has the key $content = Microsoft.PowerShell.Management\Get-Content $oneDriveFile -Raw -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\ConvertFrom-Json -ErrorAction SilentlyContinue $null -eq $content.'RemoveODTest' | Pester\Should -BeTrue } } |