Tests/Private/Show-TreeInternal.Tests.ps1
|
# ShowTree\Tests\Private\Show-TreeInternal.Tests.ps1 InModuleScope ShowTree { BeforeAll { . "$PSScriptRoot/PrivateHelpers.ps1" $fixture = New-TestTree ([ordered]@{ root = [ordered]@{ 'zeta.txt' = $null deep = [ordered]@{ a = [ordered]@{ b = [ordered]@{ c = [ordered]@{ d = [ordered]@{ 'file.txt' = $null } } } } } emptyDir = [ordered]@{} # directory with no children hiddenDir = [ordered]@{ # Attributes = 'Hidden' # Children = [ordered]@{ # 'hd1.txt' = $null # } 'hd1.txt' = $null } mixed = [ordered]@{ 'mf1.txt' = $null 'mf2.txt' = $null subMixed = [ordered]@{ 'sm1.txt' = $null 'sm2.txt' = $null } } onlyDirs = [ordered]@{ d1 = [ordered]@{} d2 = [ordered]@{} } onlyFiles = [ordered]@{ 'f1.txt' = $null 'f2.txt' = $null } systemDir = [ordered]@{ # Attributes = 'System' # Children = [ordered]@{ # 'sd1.txt' = $null # } 'sd1.txt' = $null } } }) $script:GapState = [pscustomobject]@{ LastGapMode = [GapMode]::None } } # FIXME : Convert-TestTreeToRaw doesn't yet support a way to set attributes on files and directories Describe "Tree.com compatibility" -Skip { It "Matches Tree.com output for a simple tree" { Mock Get-RawDirectoryEntries { param($Path) Convert-TestTreeToRaw -Root $fixture -Path $Path } $result = Show-TreeInternal ` -Path $fixture.FullName ` -Tree ` -Gap:$true ` -IncludeFiles:$true ` -HideHidden:$false ` -HideSystem:$false | Out-String $expected = @" │ zeta.txt │ ├───deep │ └───a │ └───b │ └───c │ └───d │ file.txt │ ├───emptyDir ├───hiddenDir │ hd1.txt │ ├───mixed │ │ mf1.txt │ │ mf2.txt │ │ │ └───subMixed │ sm1.txt │ sm2.txt │ ├───onlyDirs │ ├───d1 │ └───d2 ├───onlyFiles │ f1.txt │ f2.txt │ └───systemDir sd1.txt "@.Trim() $result.Trim() | Should -Be $expected } } } |