Diagnostics/Comprehensive/PSGallery.Comprehensive.Tests.ps1
Describe "E2E validation of PSGallery" -Fixture { BeforeAll { $Repository = "InternalPSGallery" $ModuleName = "FormatTools" $Version = "0.5.0" import-module PowerShellGet -Force if ( Get-Module -list ${ModuleName} ) { # the module is already installed $PSDefaultParameterValues["It:skip"] = $true } } It "should return the same number of modules via cmdlets and website" { $GalleryUrl = "http://psget/psgallery" # timing window here - between these two operations, modules list may change $wc = new-object System.Net.WebClient $modules = Find-Module -Repository InternalPSGallery -ea SilentlyContinue $page = $wc.downloadstring("${GalleryUrl}/packages").replace("`n","") $expectedCount = $page -replace ".*There are (\d+) modules.*",'$1' $modules.Count | Should be $expectedCount } It -skip:$false "Should be possible to find a known module" { $myModule = find-module -repository ${Repository} -Name ${ModuleName} -RequiredVersion ${Version} $myModule.Name | Should be ${ModuleName} $myModule.Version | Should be $Version } It "Should be possible to install and import a known module" { install-module -Force -Name ${ModuleName} -RequiredVersion ${Version} -Repository ${Repository} -Scope CurrentUser $m = Import-Module ${ModuleName} -PassThru $m.ModuleBase.IndexOf($HOME) | Should be 0 } AfterAll { if ( $PSDefaultParameterValues["It:skip"] -ne $true) { Uninstall-Module -force -RequiredVersion ${version} -Name ${ModuleName} -ea SilentlyContinue } } } |