diff --git a/src/code/LocalServerApiCalls.cs b/src/code/LocalServerApiCalls.cs index 551a3fb3d..e03be71aa 100644 --- a/src/code/LocalServerApiCalls.cs +++ b/src/code/LocalServerApiCalls.cs @@ -260,7 +260,7 @@ private FindResults FindNameHelper(string packageName, string[] tags, bool inclu string actualPkgName = packageName; // this regex pattern matches packageName followed by a version (4 digit or 3 with prerelease word) - string regexPattern = $"{packageName}" + @".\d+\.\d+\.\d+(?:[a-zA-Z0-9-.]+|.\d)?.nupkg"; + string regexPattern = $"{packageName}" + @"(\.\d+){1,3}(?:[a-zA-Z0-9-.]+|.\d)?\.nupkg"; Regex rx = new Regex(regexPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase); _cmdletPassedIn.WriteDebug($"package file name pattern to be searched for is: {regexPattern}"); @@ -425,7 +425,7 @@ private FindResults FindVersionHelper(string packageName, string version, string { _cmdletPassedIn.WriteDebug("Found matching version"); string pkgFullName = $"{actualPkgName}.{nugetVersion.ToString()}.nupkg"; - pkgPath = Path.Combine(Repository.Uri.LocalPath, pkgFullName); + pkgPath = path; break; } } diff --git a/test/FindPSResourceTests/FindPSResourceLocal.Tests.ps1 b/test/FindPSResourceTests/FindPSResourceLocal.Tests.ps1 index 1377cac2f..b89a245ee 100644 --- a/test/FindPSResourceTests/FindPSResourceLocal.Tests.ps1 +++ b/test/FindPSResourceTests/FindPSResourceLocal.Tests.ps1 @@ -60,6 +60,13 @@ Describe 'Test Find-PSResource for local repositories' -tags 'CI' { $res.Version | Should -Be "1.0.0" } + It "find resource given specific Name with incorrect casing and Version (should return correct casing)" { + # FindVersion() + $res = Find-PSResource -Name "test_local_mod3" -Version "1.0.0" -Repository $localRepo + $res.Name | Should -Be $testModuleName3 + $res.Version | Should -Be "1.0.0" + } + It "find resource given specific Name, Version null (module) from a UNC-based local repository" { # FindName() $res = Find-PSResource -Name $testModuleName -Repository $localUNCRepo