diff --git a/src/code/UpdatePSResource.cs b/src/code/UpdatePSResource.cs index 9790e63f3..cc981cdb4 100644 --- a/src/code/UpdatePSResource.cs +++ b/src/code/UpdatePSResource.cs @@ -199,7 +199,7 @@ protected override void ProcessRecord() nugetVersion: nugetVersion, versionType: versionType, versionString: Version, - prerelease: latestInstalledIsPrerelease, + prerelease: latestInstalledIsPrerelease || Prerelease, repository: Repository, acceptLicense: AcceptLicense, quiet: Quiet, @@ -331,7 +331,7 @@ private string[] ProcessPackageNames( nugetVersion: nuGetVersion, versionType: versionType, version: Version, - prerelease: latestInstalledIsPrerelease, + prerelease: latestInstalledIsPrerelease || Prerelease, tag: null, repository: Repository, includeDependencies: !SkipDependencyCheck)) diff --git a/test/UpdatePSResourceTests/UpdatePSResourceV2Tests.ps1 b/test/UpdatePSResourceTests/UpdatePSResourceV2Tests.ps1 index 4bc2683f4..0141e3e30 100644 --- a/test/UpdatePSResourceTests/UpdatePSResourceV2Tests.ps1 +++ b/test/UpdatePSResourceTests/UpdatePSResourceV2Tests.ps1 @@ -172,6 +172,24 @@ Describe 'Test HTTP Update-PSResource for V2 Server Protocol' -tags 'CI' { $isPkgUpdated | Should -Be $true } + It "Update resource to explicit prerelease version using NuGet syntax" { + Install-PSResource -Name $testModuleName -Version "1.0.0.0" -Repository $PSGalleryName -TrustRepository + Update-PSResource -Name $testModuleName -Version "[5.2.5-alpha001]" -Prerelease -Repository $PSGalleryName -TrustRepository + $res = Get-InstalledPSResource -Name $testModuleName + $res | Should -Not -BeNullOrEmpty + $isPkgUpdated = $false + foreach ($pkg in $res) + { + if ([System.Version]$pkg.Version -eq [System.Version]"5.2.5") + { + $pkg.Prerelease | Should -Be "alpha001" + $isPkgUpdated = $true + } + } + + $isPkgUpdated | Should -Be $true + } + It "Update prerelease version to a higher prerelease version not using -Prerelease parameter" { Install-PSResource -Name $testModuleName3 -Version "0.0.99-beta1" -Repository $PSGalleryName -TrustRepository Update-PSResource -Name $testModuleName3 -Repository $PSGalleryName -TrustRepository