-
Notifications
You must be signed in to change notification settings - Fork 228
Add integration test stage for DSCv3 #2102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
5be5564
9156e8f
b54be59
a36a927
ce90271
c4819eb
136c41f
edef6ba
0b901fd
733b7f8
703e5e9
0826c39
4048ade
fd005a2
73ac125
5949f81
95cc217
9cffe4b
2aa15e1
327b5fd
b203f53
dd98247
2cee3b6
cfd3f4e
e88148e
2cc1be7
d8ed330
4a5512f
2171d3b
76d224c
3d6dae0
2dea008
782b5d4
948846c
d9cec62
d997dc4
acbe5c2
a071efe
17ca172
ec74e67
4e7396b
a953e4c
bd71499
3aecf14
378c891
59ef77a
8220f0a
aad3617
0d7db9c
4fc02f4
f892a24
ff10725
eabc453
007529f
2749f11
4f7c9a3
3a880d5
258b398
a331093
8fc3e4e
61e5c18
032ef21
5a446e5
0f682b0
4a3e371
94308a5
1bdb4c6
f0fc658
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -77,7 +77,8 @@ | |
| "analyzersettings", | ||
| "sqlcmd", | ||
| "PBIRS", | ||
| "SSRS" | ||
| "SSRS", | ||
| "PSDSC" | ||
| ], | ||
| "cSpell.ignorePaths": [ | ||
| ".git" | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,256 @@ | ||||||||||||||||||||||||||||||||||
| <# | ||||||||||||||||||||||||||||||||||
| .SYNOPSIS | ||||||||||||||||||||||||||||||||||
| The `DebugDscEngine` DSC resource is used for debugging and testing | ||||||||||||||||||||||||||||||||||
| purposes to demonstrate DSC resource patterns and behaviors. | ||||||||||||||||||||||||||||||||||
| .DESCRIPTION | ||||||||||||||||||||||||||||||||||
| The `DebugDscEngine` DSC resource is used for debugging and testing | ||||||||||||||||||||||||||||||||||
| purposes to demonstrate DSC resource patterns and behaviors. This | ||||||||||||||||||||||||||||||||||
| resource does not perform any actual configuration changes but instead | ||||||||||||||||||||||||||||||||||
| outputs verbose messages to help understand the DSC resource lifecycle | ||||||||||||||||||||||||||||||||||
| and method execution flow. | ||||||||||||||||||||||||||||||||||
| The built-in parameter **PSDscRunAsCredential** can be used to run the resource | ||||||||||||||||||||||||||||||||||
| as another user. | ||||||||||||||||||||||||||||||||||
| ## Requirements | ||||||||||||||||||||||||||||||||||
| * No specific requirements - this is a debug resource for testing purposes. | ||||||||||||||||||||||||||||||||||
| ## Known issues | ||||||||||||||||||||||||||||||||||
| All issues are not listed here, see [here for all open issues](https://github.com/dsccommunity/SqlServerDsc/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+DebugDscEngine). | ||||||||||||||||||||||||||||||||||
| .PARAMETER KeyProperty | ||||||||||||||||||||||||||||||||||
| Specifies the key property for the resource. This is a required property | ||||||||||||||||||||||||||||||||||
| that uniquely identifies the resource instance. | ||||||||||||||||||||||||||||||||||
| .PARAMETER MandatoryProperty | ||||||||||||||||||||||||||||||||||
| Specifies a mandatory property that must be provided when using the resource. | ||||||||||||||||||||||||||||||||||
| This demonstrates how mandatory properties work in DSC resources. | ||||||||||||||||||||||||||||||||||
| .PARAMETER WriteProperty | ||||||||||||||||||||||||||||||||||
| Specifies an optional write property that can be configured by the resource. | ||||||||||||||||||||||||||||||||||
| This property can be enforced and will be compared during Test() operations. | ||||||||||||||||||||||||||||||||||
| .PARAMETER ReadProperty | ||||||||||||||||||||||||||||||||||
| Specifies a read-only property that is returned by the resource but cannot | ||||||||||||||||||||||||||||||||||
| be configured. This property is populated during Get() operations to show | ||||||||||||||||||||||||||||||||||
| the current state. | ||||||||||||||||||||||||||||||||||
| .NOTES | ||||||||||||||||||||||||||||||||||
| This resource is designed for debugging and testing purposes only. | ||||||||||||||||||||||||||||||||||
| It demonstrates the proper patterns for creating DSC class-based resources | ||||||||||||||||||||||||||||||||||
| following the SqlServerDsc module conventions. | ||||||||||||||||||||||||||||||||||
| .EXAMPLE | ||||||||||||||||||||||||||||||||||
| Configuration Example | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| Import-DscResource -ModuleName SqlServerDsc | ||||||||||||||||||||||||||||||||||
| Node localhost | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| DebugDscEngine 'TestResource' | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| KeyProperty = 'UniqueIdentifier' | ||||||||||||||||||||||||||||||||||
| MandatoryProperty = 'RequiredValue' | ||||||||||||||||||||||||||||||||||
| WriteProperty = 'ConfigurableValue' | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
| This example shows how to use the DebugDscEngine resource for testing. | ||||||||||||||||||||||||||||||||||
| #> | ||||||||||||||||||||||||||||||||||
| [DscResource(RunAsCredential = 'Optional')] | ||||||||||||||||||||||||||||||||||
| class DebugDscEngine : ResourceBase | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| [DscProperty(Key)] | ||||||||||||||||||||||||||||||||||
| [System.String] | ||||||||||||||||||||||||||||||||||
| $KeyProperty | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| [DscProperty(Mandatory)] | ||||||||||||||||||||||||||||||||||
| [System.String] | ||||||||||||||||||||||||||||||||||
| $MandatoryProperty | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| [DscProperty()] | ||||||||||||||||||||||||||||||||||
| [System.String] | ||||||||||||||||||||||||||||||||||
| $WriteProperty | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| [DscProperty(NotConfigurable)] | ||||||||||||||||||||||||||||||||||
| [System.String] | ||||||||||||||||||||||||||||||||||
| $ReadProperty | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| DebugDscEngine () : base ($PSScriptRoot) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| # These properties will not be enforced. | ||||||||||||||||||||||||||||||||||
| $this.ExcludeDscProperties = @( | ||||||||||||||||||||||||||||||||||
| 'MandatoryProperty' | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+83
to
+89
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Consider the implications of excluding a mandatory property from enforcement. The 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| [DebugDscEngine] Get() | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| # Output all environment variables to verify the environment | ||||||||||||||||||||||||||||||||||
| #Write-Verbose -Message "`nEnvironment Variables from inside DSC resource:`n$([System.Environment]::GetEnvironmentVariables().GetEnumerator() | Sort-Object Key | ForEach-Object { "$($_.Key) = $($_.Value)" } | Out-String)" -Verbose | ||||||||||||||||||||||||||||||||||
| #Write-Warning -Message 'Mocked warning message for testing purposes.' | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+94
to
+95
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Remove or properly implement the commented-out debug code. Consider either removing these commented lines or implementing them properly with a debug flag parameter. Keeping commented code in production reduces readability and maintainability. If debug output is needed, consider: +[DscProperty()]
+[System.Boolean]
+$EnableDebugOutput = $false
[DebugDscEngine] Get()
{
- # Output all environment variables to verify the environment
- #Write-Verbose -Message "`nEnvironment Variables from inside DSC resource:`n$([System.Environment]::GetEnvironmentVariables().GetEnumerator() | Sort-Object Key | ForEach-Object { "$($_.Key) = $($_.Value)" } | Out-String)" -Verbose
- #Write-Warning -Message 'Mocked warning message for testing purposes.'
+ if ($this.EnableDebugOutput)
+ {
+ Write-Verbose -Message "`nEnvironment Variables from inside DSC resource:`n$([System.Environment]::GetEnvironmentVariables().GetEnumerator() | Sort-Object Key | ForEach-Object { "$($_.Key) = $($_.Value)" } | Out-String)" -Verbose
+ }
# Call the base method to return the properties.
return ([ResourceBase] $this).Get()
}📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Call the base method to return the properties. | ||||||||||||||||||||||||||||||||||
| return ([ResourceBase] $this).Get() | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| [System.Boolean] Test() | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| # Call the base method to test all of the properties that should be enforced. | ||||||||||||||||||||||||||||||||||
| return ([ResourceBase] $this).Test() | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| [void] Set() | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| # Call the base method to enforce the properties. | ||||||||||||||||||||||||||||||||||
| ([ResourceBase] $this).Set() | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| <# | ||||||||||||||||||||||||||||||||||
| Base method Get() call this method to get the current state as a hashtable. | ||||||||||||||||||||||||||||||||||
| The parameter properties will contain the key properties. | ||||||||||||||||||||||||||||||||||
| #> | ||||||||||||||||||||||||||||||||||
| hidden [System.Collections.Hashtable] GetCurrentState([System.Collections.Hashtable] $properties) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Getting_CurrentState -f @( | ||||||||||||||||||||||||||||||||||
| $properties.KeyProperty | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_GetCurrentState_Called -f @( | ||||||||||||||||||||||||||||||||||
| $properties.KeyProperty, | ||||||||||||||||||||||||||||||||||
| ($properties.Keys -join ', ') | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| $currentState = @{ | ||||||||||||||||||||||||||||||||||
| KeyProperty = $properties.KeyProperty | ||||||||||||||||||||||||||||||||||
| MandatoryProperty = 'CurrentMandatoryStateValue' | ||||||||||||||||||||||||||||||||||
| WriteProperty = 'CurrentStateValue' | ||||||||||||||||||||||||||||||||||
| ReadProperty = 'ReadOnlyValue_' + (Get-Date -Format 'yyyyMMdd_HHmmss') | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_GetCurrentState_Returning -f @( | ||||||||||||||||||||||||||||||||||
| ($currentState.Keys -join ', ') | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| return $currentState | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| <# | ||||||||||||||||||||||||||||||||||
| Base method Set() call this method with the properties that are not in | ||||||||||||||||||||||||||||||||||
| desired state and should be enforced. It is not called if all properties | ||||||||||||||||||||||||||||||||||
| are in desired state. The variable $properties contains only the properties | ||||||||||||||||||||||||||||||||||
| that are not in desired state. | ||||||||||||||||||||||||||||||||||
| #> | ||||||||||||||||||||||||||||||||||
| hidden [void] Modify([System.Collections.Hashtable] $properties) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_Modify_Called -f @( | ||||||||||||||||||||||||||||||||||
| $this.KeyProperty, | ||||||||||||||||||||||||||||||||||
| ($properties.Keys -join ', ') | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| foreach ($propertyName in $properties.Keys) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| $propertyValue = $properties[$propertyName] | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_Modify_Property -f @( | ||||||||||||||||||||||||||||||||||
| $propertyName, | ||||||||||||||||||||||||||||||||||
| $propertyValue | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Simulate setting the property | ||||||||||||||||||||||||||||||||||
| Start-Sleep -Milliseconds 100 | ||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Consider making the simulated delay configurable. The hardcoded 100ms sleep might be too short for some debugging scenarios. Consider adding a property to make this configurable. Add a property to control the delay: +[DscProperty()]
+[System.Int32]
+$SimulatedDelayMilliseconds = 100
# Simulate setting the property
-Start-Sleep -Milliseconds 100
+Start-Sleep -Milliseconds $this.SimulatedDelayMilliseconds
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_Modify_Completed -f $this.KeyProperty | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| <# | ||||||||||||||||||||||||||||||||||
| Base method Assert() call this method with the properties that was assigned | ||||||||||||||||||||||||||||||||||
| a value. | ||||||||||||||||||||||||||||||||||
| #> | ||||||||||||||||||||||||||||||||||
| hidden [void] AssertProperties([System.Collections.Hashtable] $properties) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_AssertProperties_Called -f @( | ||||||||||||||||||||||||||||||||||
| $this.KeyProperty, | ||||||||||||||||||||||||||||||||||
| ($properties.Keys -join ', ') | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Validate that KeyProperty is not null or empty | ||||||||||||||||||||||||||||||||||
| if ([System.String]::IsNullOrEmpty($properties.KeyProperty)) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| New-ArgumentException -ArgumentName 'KeyProperty' -Message $this.localizedData.KeyProperty_Invalid | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Validate that MandatoryProperty is not null or empty | ||||||||||||||||||||||||||||||||||
| if ([System.String]::IsNullOrEmpty($properties.MandatoryProperty)) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| New-ArgumentException -ArgumentName 'MandatoryProperty' -Message $this.localizedData.MandatoryProperty_Invalid | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_AssertProperties_Completed -f $this.KeyProperty | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| <# | ||||||||||||||||||||||||||||||||||
| Base method Normalize() call this method with the properties that was assigned | ||||||||||||||||||||||||||||||||||
| a value. | ||||||||||||||||||||||||||||||||||
| #> | ||||||||||||||||||||||||||||||||||
| hidden [void] NormalizeProperties([System.Collections.Hashtable] $properties) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_NormalizeProperties_Called -f @( | ||||||||||||||||||||||||||||||||||
| $this.KeyProperty, | ||||||||||||||||||||||||||||||||||
| ($properties.Keys -join ', ') | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Normalize KeyProperty to uppercase | ||||||||||||||||||||||||||||||||||
| if ($properties.ContainsKey('KeyProperty')) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| $this.KeyProperty = $properties.KeyProperty.ToUpper() | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_NormalizeProperties_Property -f @( | ||||||||||||||||||||||||||||||||||
| 'KeyProperty', | ||||||||||||||||||||||||||||||||||
| $this.KeyProperty | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Normalize WriteProperty to trim whitespace | ||||||||||||||||||||||||||||||||||
| if ($properties.ContainsKey('WriteProperty')) | ||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||
| $this.WriteProperty = $properties.WriteProperty.Trim() | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_NormalizeProperties_Property -f @( | ||||||||||||||||||||||||||||||||||
| 'WriteProperty', | ||||||||||||||||||||||||||||||||||
| $this.WriteProperty | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Write-Verbose -Message ( | ||||||||||||||||||||||||||||||||||
| $this.localizedData.Debug_NormalizeProperties_Completed -f $this.KeyProperty | ||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| @{ | ||
| Getting_CurrentState = "Getting current state for DebugDscEngine resource with KeyProperty '{0}'." | ||
| Debug_GetCurrentState_Called = "GetCurrentState method called for KeyProperty '{0}' with properties: {1}." | ||
| Debug_GetCurrentState_Returning = "GetCurrentState method returning properties: {0}." | ||
| Debug_Modify_Called = "Modify method called for KeyProperty '{0}' with properties to modify: {1}." | ||
| Debug_Modify_Property = "Modifying property '{0}' to value '{1}'." | ||
| Debug_Modify_Completed = "Modify method completed for KeyProperty '{0}'." | ||
| Debug_AssertProperties_Called = "AssertProperties method called for KeyProperty '{0}' with properties: {1}." | ||
| Debug_AssertProperties_Completed = "AssertProperties method completed for KeyProperty '{0}'." | ||
| Debug_NormalizeProperties_Called = "NormalizeProperties method called for KeyProperty '{0}' with properties: {1}." | ||
| Debug_NormalizeProperties_Property = "Normalized property '{0}' to value '{1}'." | ||
| Debug_NormalizeProperties_Completed = "NormalizeProperties method completed for KeyProperty '{0}'." | ||
| KeyProperty_Invalid = "The parameter KeyProperty cannot be null or empty." | ||
| MandatoryProperty_Invalid = "The parameter MandatoryProperty cannot be null or empty." | ||
| } |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -21,6 +21,6 @@ if (-not $env:SqlServerDscCI) | |||||
| It is not possible to throw the error from Import-SqlDscPreferredModule | ||||||
| since it will just fail the command Import-Module with an obscure error. | ||||||
| #> | ||||||
| Write-Warning -Message $_.Exception.Message | ||||||
| #Write-Warning -Message $_.Exception.Message | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Good fix for DSCv3 JSON parsing issue. This change addresses the critical issue mentioned in the PR where warnings from module import cause JSON parsing failures in DSCv3. The warning was being interpreted as part of the resource output, breaking DSC's JSON parsing. Consider whether the warning could be redirected to a different stream instead of completely suppressed: - #Write-Warning -Message $_.Exception.Message
+ Write-Warning -Message $_.Exception.Message 3>$nullThis would suppress the warning from stdout while still allowing it to be captured if needed for debugging. 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||
| } | ||||||
| } | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Phrase reads awkwardly; align wording with CHANGELOG style
Most entries use the plural “tests” and specify scope (“… tests for …”).
Consider re-phrasing to match:
📝 Committable suggestion
🤖 Prompt for AI Agents