feat: support list(string) as coder_parameter (#6618)

* feat: support list(string) as coder_parameter

* Fix
This commit is contained in:
Marcin Tojek
2023-03-16 11:07:10 +01:00
committed by GitHub
parent 7076dee522
commit a7c734c60b
9 changed files with 38 additions and 45 deletions

3
coderd/apidoc/docs.go generated
View File

@ -8044,7 +8044,8 @@ const docTemplate = `{
"enum": [
"string",
"number",
"bool"
"bool",
"list(string)"
]
},
"validation_error": {

View File

@ -7235,7 +7235,7 @@
},
"type": {
"type": "string",
"enum": ["string", "number", "bool"]
"enum": ["string", "number", "bool", "list(string)"]
},
"validation_error": {
"type": "string"

View File

@ -793,12 +793,16 @@ func TestWorkspaceBuildValidateRichParameters(t *testing.T) {
boolParameterName = "bool_parameter"
boolParameterValue = "true"
listOfStringsParameterName = "list_of_strings_parameter"
listOfStringsParameterValue = `["a","b","c"]`
)
initialBuildParameters := []codersdk.WorkspaceBuildParameter{
{Name: stringParameterName, Value: stringParameterValue},
{Name: numberParameterName, Value: numberParameterValue},
{Name: boolParameterName, Value: boolParameterValue},
{Name: listOfStringsParameterName, Value: listOfStringsParameterValue},
}
prepareEchoResponses := func(richParameters []*proto.RichParameter) *echo.Responses {
@ -902,6 +906,10 @@ func TestWorkspaceBuildValidateRichParameters(t *testing.T) {
{Name: boolParameterName, Type: "bool", Mutable: true},
}
listOfStringsRichParameters := []*proto.RichParameter{
{Name: listOfStringsParameterName, Type: "list(string)", Mutable: true},
}
tests := []struct {
parameterName string
value string
@ -930,6 +938,11 @@ func TestWorkspaceBuildValidateRichParameters(t *testing.T) {
{boolParameterName, "true", true, boolRichParameters},
{boolParameterName, "false", true, boolRichParameters},
{boolParameterName, "cat", false, boolRichParameters},
{listOfStringsParameterName, `[]`, true, listOfStringsRichParameters},
{listOfStringsParameterName, `["aa"]`, true, listOfStringsRichParameters},
{listOfStringsParameterName, `["aa]`, false, listOfStringsRichParameters},
{listOfStringsParameterName, ``, false, listOfStringsRichParameters},
}
for _, tc := range tests {