@@ -100,10 +100,11 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
100100 require .Equal (t , - 1 , preview .ID )
101101 require .Empty (t , preview .Diagnostics )
102102
103- require .Len (t , preview .Parameters , 1 )
104- require .Equal (t , "jetbrains_ide" , preview .Parameters [0 ].Name )
105- require .True (t , preview .Parameters [0 ].Value .Valid )
106- require .Equal (t , "CL" , preview .Parameters [0 ].Value .Value )
103+ require .Len (t , preview .Parameters , 2 )
104+ coderdtest .AssertParameter (t , "jetbrains_ide" , preview .Parameters ).
105+ Exists ().Value ("CL" )
106+ coderdtest .AssertParameter (t , "region" , preview .Parameters ).
107+ Exists ().Value ("na" )
107108 })
108109
109110 // OldProvisioners use the static parameters in the dynamic param flow
@@ -241,10 +242,11 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
241242 require .Equal (t , - 1 , preview .ID )
242243 require .Empty (t , preview .Diagnostics )
243244
244- require .Len (t , preview .Parameters , 1 )
245- require .Equal (t , "jetbrains_ide" , preview .Parameters [0 ].Name )
246- require .True (t , preview .Parameters [0 ].Value .Valid )
247- require .Equal (t , "CL" , preview .Parameters [0 ].Value .Value )
245+ require .Len (t , preview .Parameters , 2 )
246+ coderdtest .AssertParameter (t , "jetbrains_ide" , preview .Parameters ).
247+ Exists ().Value ("CL" )
248+ coderdtest .AssertParameter (t , "region" , preview .Parameters ).
249+ Exists ().Value ("na" )
248250 _ = stream .Close (websocket .StatusGoingAway )
249251
250252 wrk := coderdtest .CreateWorkspace (t , setup .client , setup .template .ID , func (request * codersdk.CreateWorkspaceRequest ) {
@@ -253,29 +255,35 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
253255 Name : preview .Parameters [0 ].Name ,
254256 Value : "GO" ,
255257 },
258+ {
259+ Name : preview .Parameters [1 ].Name ,
260+ Value : "eu" ,
261+ },
256262 }
257263 request .EnableDynamicParameters = true
258264 })
259265 coderdtest .AwaitWorkspaceBuildJobCompleted (t , setup .client , wrk .LatestBuild .ID )
260266
261267 params , err := setup .client .WorkspaceBuildParameters (ctx , wrk .LatestBuild .ID )
262268 require .NoError (t , err )
263- require .Len (t , params , 1 )
264- require .Equal (t , "jetbrains_ide" , params [0 ].Name )
265- require .Equal (t , "GO" , params [0 ].Value )
269+ require .ElementsMatch (t , []codersdk.WorkspaceBuildParameter {
270+ {Name : "jetbrains_ide" , Value : "GO" }, {Name : "region" , Value : "eu" },
271+ }, params )
272+
273+ regionOptions := []string {"na" , "af" , "sa" , "as" }
266274
267275 // A helper function to assert params
268276 doTransition := func (t * testing.T , trans codersdk.WorkspaceTransition ) {
269277 t .Helper ()
270278
271- fooVal := coderdtest .RandomUsername (t )
279+ regionVal := regionOptions [0 ]
280+ regionOptions = regionOptions [1 :] // Choose the next region on the next build
281+
272282 bld , err := setup .client .CreateWorkspaceBuild (ctx , wrk .ID , codersdk.CreateWorkspaceBuildRequest {
273283 TemplateVersionID : setup .template .ActiveVersionID ,
274284 Transition : trans ,
275285 RichParameterValues : []codersdk.WorkspaceBuildParameter {
276- // No validation, so this should work as is.
277- // Overwrite the value on each transition
278- {Name : "foo" , Value : fooVal },
286+ {Name : "region" , Value : regionVal },
279287 },
280288 EnableDynamicParameters : ptr .Ref (true ),
281289 })
@@ -286,7 +294,7 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
286294 require .NoError (t , err )
287295 require .ElementsMatch (t , latestParams , []codersdk.WorkspaceBuildParameter {
288296 {Name : "jetbrains_ide" , Value : "GO" },
289- {Name : "foo " , Value : fooVal },
297+ {Name : "region " , Value : regionVal },
290298 })
291299 }
292300
0 commit comments