MCPcopy Index your code
hub / github.com/coder/coder / TestRichParameterValidation

Function TestRichParameterValidation

codersdk/richparameters_test.go:181–350  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

179}
180
181func TestRichParameterValidation(t *testing.T) {
182 t.Parallel()
183
184 const (
185 stringParameterName = "string_parameter"
186 stringParameterValue = "abc"
187
188 numberParameterName = "number_parameter"
189 numberParameterValue = "7"
190
191 boolParameterName = "bool_parameter"
192 boolParameterValue = "true"
193
194 listOfStringsParameterName = "list_of_strings_parameter"
195 listOfStringsParameterValue = `["a","b","c"]`
196 )
197
198 initialBuildParameters := []codersdk.WorkspaceBuildParameter{
199 {Name: stringParameterName, Value: stringParameterValue},
200 {Name: numberParameterName, Value: numberParameterValue},
201 {Name: boolParameterName, Value: boolParameterValue},
202 {Name: listOfStringsParameterName, Value: listOfStringsParameterValue},
203 }
204
205 t.Run("NoValidation", func(t *testing.T) {
206 t.Parallel()
207
208 p := codersdk.TemplateVersionParameter{
209 Name: numberParameterName, Type: "number", Mutable: true,
210 }
211
212 uut := codersdk.ParameterResolver{
213 Rich: initialBuildParameters,
214 }
215 v, err := uut.ValidateResolve(p, &codersdk.WorkspaceBuildParameter{
216 Name: numberParameterName, Value: "42",
217 })
218 require.NoError(t, err)
219 require.Equal(t, v, "42")
220 })
221
222 t.Run("Validation", func(t *testing.T) {
223 t.Parallel()
224
225 numberRichParameters := []codersdk.TemplateVersionParameter{
226 {Name: stringParameterName, Type: "string", Mutable: true},
227 {Name: numberParameterName, Type: "number", Mutable: true, ValidationMin: ptr.Ref(int32(3)), ValidationMax: ptr.Ref(int32(10))},
228 {Name: boolParameterName, Type: "bool", Mutable: true},
229 }
230
231 numberRichParametersMinOnly := []codersdk.TemplateVersionParameter{
232 {Name: stringParameterName, Type: "string", Mutable: true},
233 {Name: numberParameterName, Type: "number", Mutable: true, ValidationMin: ptr.Ref(int32(5))},
234 {Name: boolParameterName, Type: "bool", Mutable: true},
235 }
236
237 numberRichParametersMaxOnly := []codersdk.TemplateVersionParameter{
238 {Name: stringParameterName, Type: "string", Mutable: true},

Callers

nothing calls this directly

Calls 5

ValidateResolveMethod · 0.95
RefFunction · 0.92
RunMethod · 0.65
EqualMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected