mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
chore: Add "required" to allow requring url params (#6994)
This commit is contained in:
@ -195,6 +195,43 @@ func TestParseQueryParams(t *testing.T) {
|
||||
testQueryParams(t, expParams, parser, parser.Int)
|
||||
})
|
||||
|
||||
t.Run("UInt", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
expParams := []queryParamTestCase[uint64]{
|
||||
{
|
||||
QueryParam: "valid_integer",
|
||||
Value: "100",
|
||||
Expected: 100,
|
||||
},
|
||||
{
|
||||
QueryParam: "empty",
|
||||
Value: "",
|
||||
Expected: 0,
|
||||
},
|
||||
{
|
||||
QueryParam: "no_value",
|
||||
NoSet: true,
|
||||
Default: 5,
|
||||
Expected: 5,
|
||||
},
|
||||
{
|
||||
QueryParam: "negative",
|
||||
Value: "-10",
|
||||
Default: 5,
|
||||
ExpectedErrorContains: "must be a valid positive integer",
|
||||
},
|
||||
{
|
||||
QueryParam: "invalid_integer",
|
||||
Value: "bogus",
|
||||
Expected: 0,
|
||||
ExpectedErrorContains: "must be a valid positive integer",
|
||||
},
|
||||
}
|
||||
|
||||
parser := httpapi.NewQueryParamParser()
|
||||
testQueryParams(t, expParams, parser, parser.UInt)
|
||||
})
|
||||
|
||||
t.Run("UUIDs", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
expParams := []queryParamTestCase[[]uuid.UUID]{
|
||||
@ -237,6 +274,15 @@ func TestParseQueryParams(t *testing.T) {
|
||||
parser := httpapi.NewQueryParamParser()
|
||||
testQueryParams(t, expParams, parser, parser.UUIDs)
|
||||
})
|
||||
|
||||
t.Run("Required", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
parser := httpapi.NewQueryParamParser()
|
||||
parser.Required("test_value")
|
||||
parser.UUID(url.Values{}, uuid.New(), "test_value")
|
||||
require.Len(t, parser.Errors, 1)
|
||||
})
|
||||
}
|
||||
|
||||
func testQueryParams[T any](t *testing.T, testCases []queryParamTestCase[T], parser *httpapi.QueryParamParser, parse func(vals url.Values, def T, queryParam string) T) {
|
||||
|
Reference in New Issue
Block a user