Skip to content

Commit 03aba8a

Browse files
committed
Fix flaky tests
1 parent d55fa96 commit 03aba8a

2 files changed

Lines changed: 17 additions & 9 deletions

File tree

Private/Initialize-OpenAIAPIRequestParam.ps1

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,12 @@ function Initialize-OpenAIAPIRequestParam {
102102
if ($PSBoundParameters.ContainsKey('AdditionalBody') -and $null -ne $AdditionalBody) {
103103
if ($AdditionalBody -is [string]) {
104104
try {
105-
$AdditionalBody = ConvertFrom-Json $AdditionalBody -Depth 100
105+
$Depth = @{}
106+
# Depth param is supported only in PowerShell 6 and later
107+
if ($PSVersionTable.PSVersion.Major -ge 6) {
108+
$Depth.Depth = 100
109+
}
110+
$AdditionalBody = ConvertFrom-Json $AdditionalBody @Depth
106111
}
107112
catch {
108113
Write-Error -Exception ([System.InvalidOperationException]::new('Failed to parse AdditionalBody as JSON.'))

Tests/Initialize-OpenAIAPIRequestParam.tests.ps1

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ Describe 'Initialize-OpenAIAPIRequestParam' {
136136
It 'AdditionalQuery parameters - test 1' {
137137
$Parameters = @{
138138
Uri = 'https://api.openai.example.com/v1/test'
139-
AdditionalQuery = @{ 'param1' = 'value1'; 'param2' = 'value2' }
139+
AdditionalQuery = [ordered]@{ 'param1' = 'value1'; 'param2' = 'value2' }
140140
}
141141
$ret = Initialize-OpenAIAPIRequestParam @Parameters
142142
$ret['Uri'].ToString() | Should -BeExactly 'https://api.openai.example.com/v1/test?param1=value1&param2=value2'
@@ -145,7 +145,7 @@ Describe 'Initialize-OpenAIAPIRequestParam' {
145145
It 'AdditionalQuery parameters - test 2' {
146146
$Parameters = @{
147147
Uri = 'https://api.openai.example.com/v1/test?existing1=param1&existing2=param2'
148-
AdditionalQuery = @{ 'param1' = 'value1'; 'param2' = 'value2' }
148+
AdditionalQuery = [ordered]@{ 'param1' = 'value1'; 'param2' = 'value2' }
149149
}
150150
$ret = Initialize-OpenAIAPIRequestParam @Parameters
151151
$ret['Uri'].ToString() | Should -BeExactly 'https://api.openai.example.com/v1/test?existing1=param1&existing2=param2&param1=value1&param2=value2'
@@ -244,18 +244,21 @@ Describe 'Initialize-OpenAIAPIRequestParam' {
244244
$ret = Initialize-OpenAIAPIRequestParam @Parameters
245245
$ret['ContentType'] | Should -BeExactly 'multipart/form-data; boundary="boundary"'
246246
$ret['Body'].GetType().Name | Should -Be 'Byte[]'
247-
$BodyAsString = [System.Text.Encoding]::UTF8.GetString($ret['Body'])
248-
$BodyAsString | Should -BeExactly (@(
249-
'--boundary'
247+
$BodyAsString = [System.Text.Encoding]::UTF8.GetString($ret['Body']) -split '--boundary'
248+
$BodyAsString | Should -Contain (@(
249+
''
250250
'Content-Disposition: form-data; name="Key1"'
251251
''
252252
'value1'
253-
'--boundary'
253+
''
254+
) -join "`r`n")
255+
$BodyAsString | Should -Contain (@(
256+
''
254257
'Content-Disposition: form-data; name="Key2"'
255258
''
256259
'value2'
257-
'--boundary--'
258-
) -join "`r`n") # Should use CRLF line endings in multipart/form-data
260+
''
261+
) -join "`r`n")
259262
}
260263

261264
It 'Unknown content type' {

0 commit comments

Comments
 (0)