@@ -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.