Skip to content

Commit b18a964

Browse files
Copilotjohlju
andcommitted
Fix integration test errors in Remove-SqlDscRole
Co-authored-by: johlju <7189721+johlju@users.noreply.github.com>
1 parent 040545c commit b18a964

2 files changed

Lines changed: 37 additions & 4 deletions

File tree

source/Public/Remove-SqlDscRole.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ function Remove-SqlDscRole
9292

9393
if (-not $RoleObject)
9494
{
95-
$errorMessage = $script:localizedData.Role_NotFound -f $Name, $ServerObject.InstanceName
95+
$errorMessage = $script:localizedData.Role_NotFound -f $Name
9696
New-InvalidOperationException -Message $errorMessage
9797
}
9898
}

tests/Integration/Commands/Remove-SqlDscRole.Integration.Tests.ps1

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,17 @@ Describe 'Remove-SqlDscRole' -Tag @('Integration_SQL2016', 'Integration_SQL2017'
8282

8383
Context 'When removing a SQL Server role by name' {
8484
BeforeEach {
85+
# Clean up any existing test role first
86+
try {
87+
$existingRole = Get-SqlDscRole -ServerObject $script:serverObject -Name $script:testRoleName -ErrorAction 'SilentlyContinue'
88+
if ($existingRole) {
89+
Remove-SqlDscRole -RoleObject $existingRole -Force
90+
}
91+
}
92+
catch {
93+
# Ignore cleanup errors
94+
}
95+
8596
# Create a test role for each test
8697
New-SqlDscRole -ServerObject $script:serverObject -Name $script:testRoleName -Force
8798
}
@@ -101,12 +112,12 @@ Describe 'Remove-SqlDscRole' -Tag @('Integration_SQL2016', 'Integration_SQL2017'
101112

102113
It 'Should throw an error when removing a non-existent role' {
103114
{ Remove-SqlDscRole -ServerObject $script:serverObject -Name 'NonExistentRole' -Force -ErrorAction 'Stop' } |
104-
Should -Throw -ExpectedMessage 'Server role ''NonExistentRole'' was not found.'
115+
Should -Throw -ExpectedMessage '*Server role ''NonExistentRole'' was not found.*'
105116
}
106117

107118
It 'Should throw an error when trying to remove a fixed role' {
108119
{ Remove-SqlDscRole -ServerObject $script:serverObject -Name 'sysadmin' -Force -ErrorAction 'Stop' } |
109-
Should -Throw -ExpectedMessage 'The role ''sysadmin'' is a fixed role and cannot be removed.'
120+
Should -Throw -ExpectedMessage '*Cannot remove built-in server role ''sysadmin''*'
110121
}
111122
}
112123

@@ -135,6 +146,17 @@ Describe 'Remove-SqlDscRole' -Tag @('Integration_SQL2016', 'Integration_SQL2017'
135146

136147
Context 'When removing a SQL Server role by object' {
137148
BeforeEach {
149+
# Clean up any existing test role first
150+
try {
151+
$existingRole = Get-SqlDscRole -ServerObject $script:serverObject -Name $script:testRoleNameByObject -ErrorAction 'SilentlyContinue'
152+
if ($existingRole) {
153+
Remove-SqlDscRole -RoleObject $existingRole -Force
154+
}
155+
}
156+
catch {
157+
# Ignore cleanup errors
158+
}
159+
138160
# Create a test role for each test
139161
New-SqlDscRole -ServerObject $script:serverObject -Name $script:testRoleNameByObject -Force
140162
}
@@ -156,12 +178,23 @@ Describe 'Remove-SqlDscRole' -Tag @('Integration_SQL2016', 'Integration_SQL2017'
156178
$fixedRoleObject = Get-SqlDscRole -ServerObject $script:serverObject -Name 'sysadmin'
157179

158180
{ Remove-SqlDscRole -RoleObject $fixedRoleObject -Force -ErrorAction 'Stop' } |
159-
Should -Throw -ExpectedMessage 'The role ''sysadmin'' is a fixed role and cannot be removed.'
181+
Should -Throw -ExpectedMessage '*Cannot remove built-in server role ''sysadmin''*'
160182
}
161183
}
162184

163185
Context 'When using pipeline input' {
164186
BeforeEach {
187+
# Clean up any existing test role first
188+
try {
189+
$existingRole = Get-SqlDscRole -ServerObject $script:serverObject -Name $script:testRoleName -ErrorAction 'SilentlyContinue'
190+
if ($existingRole) {
191+
Remove-SqlDscRole -RoleObject $existingRole -Force
192+
}
193+
}
194+
catch {
195+
# Ignore cleanup errors
196+
}
197+
165198
# Create a test role for each test
166199
New-SqlDscRole -ServerObject $script:serverObject -Name $script:testRoleName -Force
167200
}

0 commit comments

Comments
 (0)