Tests/Test-DotEnv.Tests.ps1
|
BeforeAll { Set-StrictMode -Version "Latest" . "$PSScriptRoot\..\Source\ConvertFrom-DotEnv.ps1" . "$PSScriptRoot\..\Source\Test-DotEnv.ps1" } Describe "Test-DotEnv" { It "Returns true when the file exists" { $path = Join-Path -Path $TestDrive -ChildPath "exists.env" "KEY=value" | Set-Content -Path $path Test-DotEnv -Path $path | Should -BeTrue } It "Returns false when the file does not exist" { $path = Join-Path -Path $TestDrive -ChildPath "missing.env" Test-DotEnv -Path $path | Should -BeFalse } It "Returns true when the file has comment and blank lines mixed with valid pairs" { $path = Join-Path -Path $TestDrive -ChildPath "commented.env" "# comment`n`nKEY=value" | Set-Content -Path $path Test-DotEnv -Path $path | Should -BeTrue } It "Returns false when a non-comment, non-blank line is not in KEY=VALUE format" { $path = Join-Path -Path $TestDrive -ChildPath "malformed.env" "KEY=value`nNotKeyValue" | Set-Content -Path $path Test-DotEnv -Path $path | Should -BeFalse } It "Accepts the file path from the pipeline" { $validPath = Join-Path -Path $TestDrive -ChildPath "pipeline-valid.env" $missingPath = Join-Path -Path $TestDrive -ChildPath "pipeline-missing.env" "KEY=value" | Set-Content -Path $validPath $results = $validPath, $missingPath | Test-DotEnv $results | Should -Be @($true, $false) } } |