Tests/Private/MapUrlsWithHostName.Tests.ps1
BeforeAll { . (Resolve-Path "$PSScriptRoot/../../Private/MapUrlsWithHostName.ps1"); Mock -CommandName Write-Host -Verifiable -MockWith { }; Mock -CommandName Write-Output -Verifiable -MockWith { }; } Describe "MapUrlsWithHostName" { It "SingleUrl" { # Assing $defaultHostName = "someHostName.tld"; $WarmupUrls = "/page"; # Act $result = MapUrlsWithHostName -defaultHostName $defaultHostName -urls $WarmupUrls; # Assert $result | Should -Be "https://$defaultHostName/page/"; } It "AbsoluteUrls" { # Assing $defaultHostName = "someHostName.tld"; $WarmupUrls = @( "http://www.someOtherHostName.tld/InsecureTestPage/" "https://www.someOtherHostName.tld" "https://www.someOtherHostName.tld/TestPage/" "https://www.someOtherHostName.tld/test.png" ); # Act $result = MapUrlsWithHostName -defaultHostName $defaultHostName -urls $WarmupUrls; # Assert $result | Should -Be @( "http://www.someOtherHostName.tld/InsecureTestPage" "https://www.someOtherHostName.tld" "https://www.someOtherHostName.tld/TestPage" "https://www.someOtherHostName.tld/test.png" ); } It "AbsoluteImageUrl" { # Assing $defaultHostName = "someHostName.tld"; $WarmupUrls = "https://www.someOtherHostName.tld/test.png"; # Act $result = MapUrlsWithHostName -defaultHostName $defaultHostName -urls $WarmupUrls; # Assert $result | Should -Be "https://www.someOtherHostName.tld/test.png"; } It "UrlWithExtension HasNoTrailing /" { # Assing $defaultHostName = "someHostName.tld"; $WarmupUrls = "/image.png"; $WarmupUrls = @( "/image.png" "/image.png?width=something" "/image.png?width=something&height=something" ); # Act $result = MapUrlsWithHostName -defaultHostName $defaultHostName -urls $WarmupUrls; # Assert $result | Should -Be @( "https://$defaultHostName/image.png" "https://$defaultHostName/image.png?width=something" "https://$defaultHostName/image.png?width=something&height=something" ); } It "RootUrl HasNoTrailing /" { # Assing $defaultHostName = "someHostName.tld"; $WarmupUrls = "/"; # Act $result = MapUrlsWithHostName -defaultHostName $defaultHostName -urls $WarmupUrls; # Assert $result | Should -Be "https://$defaultHostName" } It "UrlWithQuery HasNoTrailing /" { # Assing $defaultHostName = "someHostName.tld"; $WarmupUrls = @( "/test?query=present" "/test?flagquery" ); # Act $result = MapUrlsWithHostName -defaultHostName $defaultHostName -urls $WarmupUrls; # Assert $result | Should -Be @( "https://$defaultHostName/test?query=present" "https://$defaultHostName/test?flagquery" ); } It "MultiUrl" { # Assing $defaultHostName = "someHostName.tld"; $WarmupUrls = @( "/" "/page-a/" "/page-b" ); # Act $result = MapUrlsWithHostName -defaultHostName $defaultHostName -urls $WarmupUrls; # Assert $result | Should -Be @( "https://$defaultHostName" "https://$defaultHostName/page-a/" "https://$defaultHostName/page-b/" ); } It "MissingParameters ShouldFail" { # Act $noDefaultHostName = { MapUrlsWithHostName -defaultHostName "hostname"; } $noUrls = { MapUrlsWithHostName -urls "/"; } $none = { MapUrlsWithHostName; } # Assert $noDefaultHostName | Should -Throw "urls parameter is null"; $noUrls | Should -Throw "defaultHostName parameter is null or empty"; $none | Should -Throw "defaultHostName parameter is null or empty"; } } |