mirror of
https://github.com/GoodOlClint/PSProxmoxVE.git
synced 2026-07-26 07:58:14 +00:00
fix(test): remove mandatory-param invocation tests that hang PS 5.1
PS 5.1 prompts interactively for mandatory parameters instead of throwing, causing CI to hang indefinitely. Replace invocation-based tests with attribute-based IsMandatory checks where duplicates exist, or convert to attribute checks where they don't. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -26,14 +26,16 @@ Describe 'Connect-PveServer' {
|
||||
}
|
||||
}
|
||||
|
||||
Context 'Parameter validation — missing required parameters' {
|
||||
It 'Should throw when Server is omitted entirely' {
|
||||
{ Connect-PveServer -ErrorAction Stop } | Should -Throw
|
||||
Context 'Parameter validation — required parameters' {
|
||||
It 'Server should be Mandatory' {
|
||||
$param = (Get-Command 'Connect-PveServer').Parameters['Server']
|
||||
$isMandatory = $param.ParameterSets.Values | Where-Object { $_.IsMandatory }
|
||||
$isMandatory | Should -Not -BeNullOrEmpty
|
||||
}
|
||||
|
||||
It 'Should throw when Server is provided but neither Credential nor ApiToken is supplied' {
|
||||
# Both parameter sets require one of Credential/ApiToken; omitting both is an error.
|
||||
{ Connect-PveServer -Server 'pve.example.com' -ErrorAction Stop } | Should -Throw
|
||||
It 'Should require either Credential or ApiToken (both parameter sets exist)' {
|
||||
$cmd = Get-Command 'Connect-PveServer'
|
||||
$cmd.ParameterSets.Count | Should -BeGreaterOrEqual 2
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,10 +58,6 @@ Describe 'New-PveContainer' {
|
||||
$isMandatory | Should -Not -BeNullOrEmpty
|
||||
}
|
||||
|
||||
It 'Should throw when Node is omitted' {
|
||||
Skip-IfMissing 'New-PveContainer'
|
||||
{ New-PveContainer -ErrorAction Stop } | Should -Throw
|
||||
}
|
||||
}
|
||||
|
||||
Context 'Optional parameters' {
|
||||
|
||||
@@ -56,23 +56,6 @@ Describe 'Send-PveIso' {
|
||||
$isMandatory | Should -Not -BeNullOrEmpty
|
||||
}
|
||||
|
||||
It 'Should throw when Node is omitted' {
|
||||
if (-not $script:CmdExists) { Set-ItResult -Skipped -Because 'Not yet compiled'; return }
|
||||
{ Send-PveIso -Storage 'local' -Path '/tmp/test.iso' -ErrorAction Stop } |
|
||||
Should -Throw
|
||||
}
|
||||
|
||||
It 'Should throw when Storage is omitted' {
|
||||
if (-not $script:CmdExists) { Set-ItResult -Skipped -Because 'Not yet compiled'; return }
|
||||
{ Send-PveIso -Node 'pve-node1' -Path '/tmp/test.iso' -ErrorAction Stop } |
|
||||
Should -Throw
|
||||
}
|
||||
|
||||
It 'Should throw when Path is omitted' {
|
||||
if (-not $script:CmdExists) { Set-ItResult -Skipped -Because 'Not yet compiled'; return }
|
||||
{ Send-PveIso -Node 'pve-node1' -Storage 'local' -ErrorAction Stop } |
|
||||
Should -Throw
|
||||
}
|
||||
}
|
||||
|
||||
Context 'ChecksumAlgorithm ValidateSet' {
|
||||
|
||||
@@ -42,10 +42,6 @@ Describe 'New-PveVm' {
|
||||
}
|
||||
|
||||
Context 'Required parameter — Node' {
|
||||
It 'Should throw when Node is omitted' {
|
||||
{ New-PveVm -ErrorAction Stop } | Should -Throw
|
||||
}
|
||||
|
||||
It 'Node should be Mandatory' {
|
||||
$nodeParam = (Get-Command 'New-PveVm').Parameters['Node']
|
||||
$isMandatory = $nodeParam.ParameterSets.Values | Where-Object { $_.IsMandatory }
|
||||
|
||||
@@ -51,14 +51,6 @@ Describe 'Remove-PveVm' {
|
||||
}
|
||||
|
||||
Context 'Required parameters' {
|
||||
It 'Should throw when Node is omitted' {
|
||||
{ Remove-PveVm -VmId 100 -ErrorAction Stop } | Should -Throw
|
||||
}
|
||||
|
||||
It 'Should throw when VmId is omitted' {
|
||||
{ Remove-PveVm -Node 'pve-node1' -ErrorAction Stop } | Should -Throw
|
||||
}
|
||||
|
||||
It 'Node should be Mandatory' {
|
||||
$nodeParam = (Get-Command 'Remove-PveVm').Parameters['Node']
|
||||
$isMandatory = $nodeParam.ParameterSets.Values | Where-Object { $_.IsMandatory }
|
||||
|
||||
Reference in New Issue
Block a user