tests/Expand-DFXdgPath.Tests.ps1
|
BeforeAll { . "$PSScriptRoot/../Private/Expand-DFXdgPath.ps1" . "$PSScriptRoot/../Private/ConvertTo-DFPath.ps1" } Describe 'Expand-DFXdgPath' { BeforeEach { $script:SavedConfigHome = $Env:XDG_CONFIG_HOME $script:SavedDataHome = $Env:XDG_DATA_HOME $script:SavedStateHome = $Env:XDG_STATE_HOME $script:SavedCacheHome = $Env:XDG_CACHE_HOME $Env:XDG_CONFIG_HOME = 'C:\config' $Env:XDG_DATA_HOME = 'C:\data' $Env:XDG_STATE_HOME = 'C:\state' $Env:XDG_CACHE_HOME = 'C:\cache' } AfterEach { $Env:XDG_CONFIG_HOME = $script:SavedConfigHome $Env:XDG_DATA_HOME = $script:SavedDataHome $Env:XDG_STATE_HOME = $script:SavedStateHome $Env:XDG_CACHE_HOME = $script:SavedCacheHome } It 'expands ${XDG_CONFIG_HOME} to a canonical native path' { Expand-DFXdgPath '${XDG_CONFIG_HOME}/bat/bat.conf' | Should -Be 'C:\config\bat\bat.conf' } It 'expands ${XDG_DATA_HOME} to a canonical native path' { Expand-DFXdgPath '${XDG_DATA_HOME}/zoxide' | Should -Be 'C:\data\zoxide' } It 'expands ${XDG_STATE_HOME} to a canonical native path' { Expand-DFXdgPath '${XDG_STATE_HOME}/less/history' | Should -Be 'C:\state\less\history' } It 'expands ${XDG_CACHE_HOME} to a canonical native path' { Expand-DFXdgPath '${XDG_CACHE_HOME}/uv' | Should -Be 'C:\cache\uv' } It 'collapses a trailing segment to no trailing separator' { Expand-DFXdgPath '${XDG_CONFIG_HOME}/glow/' | Should -Be 'C:\config\glow' } It 'returns a token-less flag string byte-for-byte' { Expand-DFXdgPath '--RAW-CONTROL-CHARS --quit-if-one-screen --no-init' | Should -Be '--RAW-CONTROL-CHARS --quit-if-one-screen --no-init' } It 'leaves forward slashes in a token-less string untouched' { Expand-DFXdgPath 'fd --type f --exclude .git' | Should -Be 'fd --type f --exclude .git' } } |