@@ -167,6 +167,31 @@ Describe "Test Publish-PSResource" -tags 'CI' {
167167 (Get-ChildItem $script :repositoryPath ).FullName | Should - Be $expectedPath
168168 }
169169
170+ It " Publish a module with ExternalModuleDependencies should automatically skip that dependency" {
171+ $version = " 1.0.0"
172+ $moduleName = " test_ext_dep_module"
173+ $externalDepName = " Appx"
174+ $requiredModName = " test_module10"
175+ $requiredModVersion = " 2.0.0"
176+
177+ # First publish RequiredModule dependency
178+ $requiredModulePath = Join-Path - Path $script :PublishModuleBase - ChildPath $requiredModName.psd1
179+ New-ModuleManifest - Path $requiredModulePath - Description " $requiredModName test" - ModuleVersion $requiredModVersion
180+ Publish-PSResource - Path $requiredModulePath - Repository $testRepository2
181+ $res = Find-PSResource $requiredModName - Version $requiredModVersion - Repository $testRepository2
182+ $res.Name | Should - Be $requiredModName
183+ $res.Version | Should - Be $requiredModVersion
184+
185+ # Next publish module which lists $requiredModName and an external module dependency under 'RequiredModules' section
186+ $testModulePath = Join-Path - Path $script :PublishModuleBase - ChildPath $moduleName.psd1
187+ New-ModuleManifest - Path $testModulePath - ModuleVersion $version - Description " $moduleName module" - RequiredModules @ ( @ { ModuleName = $requiredModName ; ModuleVersion = $requiredModVersion }, $externalDepName ) - ExternalModuleDependencies $externalDepName
188+ $manifest = Test-ModuleManifest $testModulePath
189+ $manifest.PrivateData.PSData.ExternalModuleDependencies | Should - Contain $externalDepName
190+ Publish-PSResource - Path $testModulePath - Repository $testRepository2
191+ $res2 = Find-PSResource $moduleName - Repository $testRepository2
192+ $res2.Name | Should - Be $moduleName
193+ }
194+
170195 # region Local Source Path
171196 It " Publish a module with -Path and -Repository" {
172197 $version = " 1.0.0"
0 commit comments