Skip to content

Commit 744776f

Browse files
Fix TrustRepository not being respected in RequiredResource and add tests
Co-authored-by: adityapatwardhan <12820925+adityapatwardhan@users.noreply.github.com>
1 parent 9a7298c commit 744776f

3 files changed

Lines changed: 43 additions & 7 deletions

File tree

src/code/InstallPSResource.cs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,16 @@ private void ProcessInstallHelper(string[] pkgNames, string pkgVersion, bool pkg
565565
this));
566566
}
567567

568+
// When reqResourceParams is provided (via -RequiredResource), use its properties
569+
// instead of the cmdlet-level parameters
570+
bool acceptLicense = reqResourceParams != null ? reqResourceParams.AcceptLicense : AcceptLicense;
571+
bool quiet = reqResourceParams != null ? reqResourceParams.Quiet : Quiet;
572+
bool reinstall = reqResourceParams != null ? reqResourceParams.Reinstall : Reinstall;
573+
bool trustRepository = reqResourceParams != null ? reqResourceParams.TrustRepository : TrustRepository;
574+
bool noClobber = reqResourceParams != null ? reqResourceParams.NoClobber : NoClobber;
575+
bool skipDependencyCheck = reqResourceParams != null ? reqResourceParams.SkipDependencyCheck : SkipDependencyCheck;
576+
ScopeType scope = reqResourceParams != null && reqResourceParams.Scope != ScopeType.CurrentUser ? reqResourceParams.Scope : Scope;
577+
568578
IEnumerable<PSResourceInfo> installedPkgs = _installHelper.BeginInstallPackages(
569579
names: pkgNames,
570580
versionRange: versionRange,
@@ -573,19 +583,19 @@ private void ProcessInstallHelper(string[] pkgNames, string pkgVersion, bool pkg
573583
versionString: Version,
574584
prerelease: pkgPrerelease,
575585
repository: pkgRepository,
576-
acceptLicense: AcceptLicense,
577-
quiet: Quiet,
578-
reinstall: Reinstall,
586+
acceptLicense: acceptLicense,
587+
quiet: quiet,
588+
reinstall: reinstall,
579589
force: false,
580-
trustRepository: TrustRepository,
581-
noClobber: NoClobber,
590+
trustRepository: trustRepository,
591+
noClobber: noClobber,
582592
asNupkg: false,
583593
includeXml: true,
584-
skipDependencyCheck: SkipDependencyCheck,
594+
skipDependencyCheck: skipDependencyCheck,
585595
authenticodeCheck: AuthenticodeCheck,
586596
savePkg: false,
587597
pathsToInstallPkg: _pathsToInstallPkg,
588-
scope: Scope,
598+
scope: scope,
589599
tmpPath: _tmpPath,
590600
pkgsInstalled: _packagesOnMachine);
591601

test/InstallPSResourceTests/InstallPSResourceV2Server.Tests.ps1

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,19 @@ Describe 'Test Install-PSResource for V2 Server scenarios' -tags 'CI' {
429429
(Get-InstalledPSResource -Name 'TestModule99').'Prerelease' | Should -Be 'beta2'
430430
}
431431

432+
It "Install module using -RequiredResource with TrustRepository in hashtable" {
433+
# This test verifies that TrustRepository specified in -RequiredResource hashtable is respected
434+
Install-PSResource -RequiredResource @{
435+
'TestModule99' = @{
436+
'repository' = 'PSGallery'
437+
'trustrepository' = 'true'
438+
}
439+
}
440+
$res = Get-InstalledPSResource -Name 'TestModule99'
441+
$res.Name | Should -Be 'TestModule99'
442+
$res.Version | Should -Be '0.0.93'
443+
}
444+
432445
It "Install modules using -RequiredResource with JSON string" {
433446
$rrJSON = "{
434447
'test_module': {

test/InstallPSResourceTests/InstallPSResourceV3Server.Tests.ps1

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,19 @@ Describe 'Test Install-PSResource for V3Server scenarios' -tags 'CI' {
310310
$res3.Version | Should -Be '0.0.93'
311311
}
312312

313+
It 'Install module using -RequiredResource with TrustRepository in hashtable' {
314+
# This test verifies that TrustRepository specified in -RequiredResource hashtable is respected
315+
Install-PSResource -RequiredResource @{
316+
'TestModule99' = @{
317+
'repository' = $NuGetGalleryName
318+
'trustrepository' = 'true'
319+
}
320+
}
321+
$res = Get-InstalledPSResource -Name 'TestModule99'
322+
$res.Name | Should -Be 'TestModule99'
323+
$res.Version | Should -Be '0.0.93'
324+
}
325+
313326
It 'Install modules using -RequiredResource with JSON string' {
314327
$rrJSON = "{
315328
'test_module': {

0 commit comments

Comments
 (0)