Skip to content

Commit

Permalink
xGroupResource: Force array type for members (#773)
Browse files Browse the repository at this point in the history
  • Loading branch information
webalexeu authored Oct 19, 2024
1 parent aaf8343 commit 4671583
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 15 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Fixed

- xGroup
- Fixed a bug where the get resource would fail if group members is empty [Issue #772](https://github.com/dsccommunity/xPSDesiredStateConfiguration/issues/772)

## [9.2.0] - 2024-10-15

### Fixed
Expand Down
16 changes: 3 additions & 13 deletions source/DSCResources/DSC_xGroupResource/DSC_xGroupResource.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -383,13 +383,8 @@ function Get-TargetResourceOnFullSKU
$null = $disposables.Add($group)

# The group was found. Find the group members.
$members = Get-MembersOnFullSKU -Group $group -PrincipalContextCache $principalContextCache `
-Credential $Credential -Disposables $disposables

if ($members -is [System.String])
{
$members = @($members)
}
[System.String[]] $members = @(Get-MembersOnFullSKU -Group $group -PrincipalContextCache $principalContextCache `
-Credential $Credential -Disposables $disposables)

return @{
GroupName = $group.Name
Expand Down Expand Up @@ -459,12 +454,7 @@ function Get-TargetResourceOnNanoServer
}

# The group was found. Find the group members.
$members = Get-MembersOnNanoServer -Group $group

if ($members -is [System.String])
{
$members = @($members)
}
[System.String[]] $members = @(Get-MembersOnNanoServer -Group $group)

return @{
GroupName = $group.Name
Expand Down
8 changes: 6 additions & 2 deletions tests/Unit/DSC_xGroupResource.Tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -944,7 +944,8 @@ try
$getTargetResourceResult.GroupName | Should -Be $script:testGroupName
$getTargetResourceResult.Ensure | Should -Be 'Present'
$getTargetResourceResult.Description | Should -Be $script:testGroupDescription
$getTargetResourceResult.Members | Should -Be $null
$getTargetResourceResult.Members -is [System.String[]] | Should -BeTrue
$getTargetResourceResult.Members.Count | Should -Be 0
}

It 'Should return correct hashtable values when Get-Group returns a valid, existing group with a single member' {
Expand All @@ -965,7 +966,8 @@ try
$getTargetResourceResult.Ensure | Should -Be 'Present'
$getTargetResourceResult.Description | Should -Be $script:testGroupDescription
$getTargetResourceResult.Members | Should -Be $testMembersSingle
$getTargetResourceResult.Members -is [System.Object[]] | Should -BeTrue
$getTargetResourceResult.Members -is [System.String[]] | Should -BeTrue
$getTargetResourceResult.Members.Count | Should -Be 1
}

It 'Should return correct hashtable values when Get-Group returns a valid, existing group with multiple members' {
Expand All @@ -986,6 +988,8 @@ try
$getTargetResourceResult.Ensure | Should -Be 'Present'
$getTargetResourceResult.Description | Should -Be $script:testGroupDescription
$getTargetResourceResult.Members | Should -Be $testMembersMultiple
$getTargetResourceResult.Members -is [System.String[]] | Should -BeTrue
$getTargetResourceResult.Members.Count | Should -BeGreaterThan 1
}
}

Expand Down

0 comments on commit 4671583

Please sign in to comment.