@@ -3,6 +3,7 @@ package coderd_test
3
3
import (
4
4
"context"
5
5
"os"
6
+ "slices"
6
7
"testing"
7
8
8
9
"github.com/google/uuid"
@@ -264,18 +265,31 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
264
265
doTransition := func (t * testing.T , trans codersdk.WorkspaceTransition ) {
265
266
t .Helper ()
266
267
268
+ fooVal := coderdtest .RandomUsername (t )
267
269
bld , err := setup .client .CreateWorkspaceBuild (ctx , wrk .ID , codersdk.CreateWorkspaceBuildRequest {
268
- TemplateVersionID : setup .template .ActiveVersionID ,
269
- Transition : trans ,
270
+ TemplateVersionID : setup .template .ActiveVersionID ,
271
+ Transition : trans ,
272
+ RichParameterValues : []codersdk.WorkspaceBuildParameter {
273
+ // No validation, so this should work as is.
274
+ // Overwrite the value on each transition
275
+ {Name : "foo" , Value : fooVal },
276
+ },
270
277
EnableDynamicParameters : ptr .Ref (true ),
271
278
})
272
279
require .NoError (t , err )
273
280
coderdtest .AwaitWorkspaceBuildJobCompleted (t , setup .client , wrk .LatestBuild .ID )
274
281
275
282
latestParams , err := setup .client .WorkspaceBuildParameters (ctx , bld .ID )
276
- require .Len (t , latestParams , 1 )
277
- require .Equal (t , "jetbrains_ide" , latestParams [0 ].Name )
278
- require .Equal (t , "GO" , latestParams [0 ].Value )
283
+ require .Len (t , latestParams , 2 )
284
+ idx := slices .IndexFunc (latestParams , func (parameter codersdk.WorkspaceBuildParameter ) bool {
285
+ return parameter .Name == "jetbrains_ide"
286
+ })
287
+ require .Equal (t , "jetbrains_ide" , latestParams [idx ].Name )
288
+ require .Equal (t , "GO" , latestParams [idx ].Value )
289
+
290
+ fooIdx := (idx + 1 ) % 2
291
+ require .Equal (t , "foo" , latestParams [fooIdx ].Name )
292
+ require .Equal (t , fooVal , latestParams [fooIdx ].Value )
279
293
}
280
294
281
295
// Restart the workspace, then delete. Asserting params on all builds.
0 commit comments