@@ -32,6 +32,7 @@ type queryParamTestCase[T any] struct {
32
32
33
33
func TestParseQueryParams (t * testing.T ) {
34
34
t .Parallel ()
35
+ const multipleValuesError = "multiple values provided"
35
36
36
37
t .Run ("Enum" , func (t * testing.T ) {
37
38
t .Parallel ()
@@ -64,6 +65,11 @@ func TestParseQueryParams(t *testing.T) {
64
65
Value : fmt .Sprintf ("%s,%s" , database .ResourceTypeWorkspace , database .ResourceTypeApiKey ),
65
66
Expected : []database.ResourceType {database .ResourceTypeWorkspace , database .ResourceTypeApiKey },
66
67
},
68
+ {
69
+ QueryParam : "resource_type_as_list" ,
70
+ Values : []string {string (database .ResourceTypeWorkspace ), string (database .ResourceTypeApiKey )},
71
+ Expected : []database.ResourceType {database .ResourceTypeWorkspace , database .ResourceTypeApiKey },
72
+ },
67
73
}
68
74
69
75
parser := httpapi .NewQueryParamParser ()
@@ -156,6 +162,11 @@ func TestParseQueryParams(t *testing.T) {
156
162
Default : "default" ,
157
163
Expected : "default" ,
158
164
},
165
+ {
166
+ QueryParam : "unexpected_list" ,
167
+ Values : []string {"one" , "two" },
168
+ ExpectedErrorContains : multipleValuesError ,
169
+ },
159
170
}
160
171
161
172
parser := httpapi .NewQueryParamParser ()
@@ -198,6 +209,11 @@ func TestParseQueryParams(t *testing.T) {
198
209
Expected : false ,
199
210
ExpectedErrorContains : "must be a valid boolean" ,
200
211
},
212
+ {
213
+ QueryParam : "unexpected_list" ,
214
+ Values : []string {"true" , "false" },
215
+ ExpectedErrorContains : multipleValuesError ,
216
+ },
201
217
}
202
218
203
219
parser := httpapi .NewQueryParamParser ()
@@ -235,6 +251,11 @@ func TestParseQueryParams(t *testing.T) {
235
251
Expected : 0 ,
236
252
ExpectedErrorContains : "must be a valid integer" ,
237
253
},
254
+ {
255
+ QueryParam : "unexpected_list" ,
256
+ Values : []string {"5" , "10" },
257
+ ExpectedErrorContains : multipleValuesError ,
258
+ },
238
259
}
239
260
240
261
parser := httpapi .NewQueryParamParser ()
@@ -279,6 +300,11 @@ func TestParseQueryParams(t *testing.T) {
279
300
Expected : 0 ,
280
301
ExpectedErrorContains : "must be a valid 32-bit positive integer" ,
281
302
},
303
+ {
304
+ QueryParam : "unexpected_list" ,
305
+ Values : []string {"5" , "10" },
306
+ ExpectedErrorContains : multipleValuesError ,
307
+ },
282
308
}
283
309
284
310
parser := httpapi .NewQueryParamParser ()
@@ -316,6 +342,11 @@ func TestParseQueryParams(t *testing.T) {
316
342
Expected : 0 ,
317
343
ExpectedErrorContains : "must be a valid positive integer" ,
318
344
},
345
+ {
346
+ QueryParam : "unexpected_list" ,
347
+ Values : []string {"5" , "10" },
348
+ ExpectedErrorContains : multipleValuesError ,
349
+ },
319
350
}
320
351
321
352
parser := httpapi .NewQueryParamParser ()
0 commit comments