Files
runner-images/images/ubuntu/scripts/tests/PowerShellModules.Tests.ps1
Shamil Mubarakshin dbb10c67ba [ubuntu] Refactor pester tests (#9006)
* [ubuntu] Refactor pester tests

* Fix key name and add BeforeAll

* Fix ActionArchiveCache test
2023-12-14 17:33:34 +01:00

65 lines
2.4 KiB
PowerShell

Describe "PowerShellModules" {
$modules = (Get-ToolsetContent).powershellModules
$modulesWithoutVersions = $modules | Where-Object { -not $_.versions } | ForEach-Object {
@{moduleName = $_.name}
}
$modulesWithVersions = $modules | Where-Object { $_.versions } | ForEach-Object {
$moduleName = $_.name
$_.versions | ForEach-Object {
@{moduleName = $moduleName; expectedVersion = $_}
}
}
It "<moduleName> is installed" -TestCases $modulesWithoutVersions {
Get-Module -Name $moduleName -ListAvailable | Should -BeTrue
}
if ($modulesWithVersions) {
It "<moduleName> with <expectedVersion> is installed" -TestCases $modulesWithVersions {
(Get-Module -Name $moduleName -ListAvailable).Version -contains $expectedVersion | Should -BeTrue
}
}
}
Describe "AzureModules" {
$modules = (Get-ToolsetContent).azureModules
$modulesRootPath = "/usr/share"
foreach ($module in $modules) {
$moduleName = $module.name
Context "$moduleName" {
foreach ($version in $module.versions) {
$modulePath = Join-Path -Path $modulesRootPath -ChildPath "${moduleName}_${version}"
$moduleInfo = @{ moduleName = $moduleName; modulePath = $modulePath; expectedVersion = $version }
It "<expectedVersion> exists in modules directory" -TestCases $moduleInfo {
$testJob = Start-Job -ScriptBlock {
param (
$modulePath,
$moduleName
)
$env:PSModulePath = "${modulePath}:${env:PSModulePath}"
(Get-Module -ListAvailable -Name $moduleName).Version.ToString()
} -ArgumentList $modulePath, $moduleName
$moduleVersion = $testJob | Wait-Job | Receive-Job
Remove-Job $testJob
$moduleVersion | Should -Match $expectedVersion
}
}
if ($module.default) {
$moduleInfo = @{ moduleName = $moduleName; moduleDefault = $module.default }
It "<moduleDefault> set as default" -TestCases $moduleInfo {
$moduleVersion = (Get-Module -ListAvailable -Name $moduleName).Version.ToString()
$moduleVersion | Should -Match $moduleDefault
}
}
}
}
}