diff --git a/get-new-tool-versions/get-new-tool-versions.Tests.ps1 b/get-new-tool-versions/get-new-tool-versions.Tests.ps1 new file mode 100644 index 0000000..b9802ce --- /dev/null +++ b/get-new-tool-versions/get-new-tool-versions.Tests.ps1 @@ -0,0 +1,64 @@ +#Requires -Modules Pester + +Import-Module (Join-Path $PSScriptRoot "helpers.psm1") -Force + +Describe "Format-Versions" { + It "Clean versions" { + $actualOutput = Format-Versions -Versions @("14.2.0", "1.14.0") + $expectedOutput = @("14.2.0", "1.14.0") + $actualOutput | Should -Be $expectedOutput + } + + It "Versions with prefixes" { + $actualOutput = Format-Versions -Versions @("v14.2.0", "go1.14.0") + $expectedOutput = @("14.2.0", "1.14.0") + $actualOutput | Should -Be $expectedOutput + } + + It "Skip beta and rc versions" { + $actualOutput = Format-Versions -Versions @("14.2.0-beta", "v1.14.0-rc-1") + $expectedOutput = @() + $actualOutput | Should -Be $expectedOutput + } + + It "Short version" { + $actualOutput = Format-Versions -Versions @("14.2", "v2.0") + $expectedOutput = @("14.2.0", "2.0.0") + $actualOutput | Should -Be $expectedOutput + } + + It "Skip versions with 1 digin" { + $actualOutput = Format-Versions -Versions @("14", "v2") + $expectedOutput = @() + $actualOutput | Should -Be $expectedOutput + } +} + +Describe "Filter-Versions" { + $inputVersions = @("8.2.1", "9.3.3", "10.0.2", "10.0.3", "10.5.6", "12.4.3", "12.5.1", "14.2.0") + + It "Include filter" { + $includeFilters = @("8.*", "14.*") + $actualOutput = Filter-Versions -Versions $inputVersions -IncludeFilters $includeFilters + $expectedOutput = @("8.2.1", "14.2.0") + $actualOutput | Should -Be $expectedOutput + } + + It "Exclude filter" { + $includeFilters = @("10.*", "12.*") + $excludeFilters = @("10.0.*", "12.4.3") + $actualOutput = Filter-Versions -Versions $inputVersions -IncludeFilters $includeFilters -ExcludeFilters $excludeFilters + $expectedOutput = @("10.5.6", "12.5.1") + $actualOutput | Should -Be $expectedOutput + } +} + +Describe "Get-VersionsToBuild" { + It "Substract versions correctly" { + $distInput = @("14.2.0", "14.3.0", "14.4.0", "14.4.1") + $manifestInput = @("12.0.0", "14.2.0", "14.4.0") + $actualOutput = Get-VersionsToBuild -VersionsFromDist $distInput -VersionsFromManifest $manifestInput + $expectedOutput = @("14.3.0", "14.4.1") + $actualOutput | Should -Be $expectedOutput + } +} \ No newline at end of file