Files
PowerShell-PowerShell/test/powershell/engine/Module/SubmodulePathInManifest.Tests.ps1
T
Steve Lee c1c5344a88 Update copyright and license headers (#6134)
Based on standard practices, we need to have a copyright and license notice at the top of each source file. Removed existing copyrights and updated/added copyright notices for .h, .cpp, .cs, .ps1, and .psm1 files.

Updated module manifests for consistency to have Author = "PowerShell" and Company = "Microsoft Corporation". Removed multiple line breaks.

Separate PR coming to update contribution document for new source files: #6140

Manually reviewed each change.

Fix #6073
2018-02-13 09:23:53 -08:00

57 lines
2.5 KiB
PowerShell

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
Describe "Tests for paths of submodules in module manifest" -tags "CI" {
$moduleName = 'ModuleA'
$moduleFileName = "$moduleName.psd1"
$submoduleName = 'ModuleB'
$submoduleFileName = "$submoduleName.psm1"
$moduleRootPath = Join-Path $TestDrive $moduleName
$moduleFilePath = Join-Path $moduleRootPath $moduleFileName
$nestedModulePath = Join-Path $moduleRootPath $submoduleName
$nestedModuleFilePath = Join-Path $nestedModulePath $submoduleFileName
BeforeEach {
Remove-Module $moduleName -Force -ErrorAction SilentlyContinue
Remove-Item $moduleRootPath -Recurse -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Force -Path $nestedModulePath
"function TestModuleFunction{'Hello from TestModuleFunction'}" | Out-File $nestedModuleFilePath
}
$testCases = @(
@{ SubModulePath = "$submoduleName" }
@{ SubModulePath = "$submoduleName\$submoduleName" }
@{ SubModulePath = "$submoduleName/$submoduleName" }
@{ SubModulePath = "$submoduleName\$submoduleFileName" }
@{ SubModulePath = "$submoduleName/$submoduleFileName" }
@{ SubModulePath = ".\$submoduleName" }
@{ SubModulePath = ".\$submoduleName\$submoduleName" }
@{ SubModulePath = ".\$submoduleName/$submoduleName" }
@{ SubModulePath = ".\$submoduleName\$submoduleFileName" }
@{ SubModulePath = ".\$submoduleName/$submoduleFileName" }
@{ SubModulePath = "./$submoduleName" }
@{ SubModulePath = "./$submoduleName/$submoduleName" }
@{ SubModulePath = "./$submoduleName\$submoduleName" }
@{ SubModulePath = "./$submoduleName/$submoduleFileName" }
@{ SubModulePath = "./$submoduleName\$submoduleFileName" }
)
It "Test if NestedModule path is <SubModulePath>" -TestCases $testCases {
param($SubModulePath)
New-ModuleManifest $moduleFilePath -NestedModules @($SubModulePath)
Import-Module $moduleFilePath
(Get-Module $moduleName).ExportedCommands.Keys.Contains('TestModuleFunction') | Should Be $true
}
It "Test if RootModule path is <SubModulePath>" -TestCases $testCases {
param($SubModulePath)
New-ModuleManifest $moduleFilePath -RootModule $SubModulePath
Import-Module $moduleFilePath
(Get-Module $moduleName).ExportedCommands.Keys.Contains('TestModuleFunction') | Should Be $true
}
}