@@ -353,45 +353,38 @@ func TestDynamicParameterBuild(t *testing.T) {
353
353
})
354
354
355
355
t .Run ("ImmutableChangeValue" , func (t * testing.T ) {
356
+ // Ok this is a weird test to document how things are working.
357
+ // What if a parameter flips it's immutability based on a value?
356
358
t .Parallel ()
357
359
358
360
ctx := testutil .Context (t , testutil .WaitShort )
359
361
// Start with a new template that has 1 parameter that is immutable
360
362
immutable , _ := coderdtest .DynamicParameterTemplate (t , templateAdmin , orgID , coderdtest.DynamicParameterTemplateParams {
361
- MainTF : string (must (os .ReadFile ("testdata/parameters/immutable /main.tf" ))),
363
+ MainTF : string (must (os .ReadFile ("testdata/parameters/dynamicimmutable /main.tf" ))),
362
364
})
363
365
364
366
// Create the workspace with the immutable parameter
365
367
wrk , err := templateAdmin .CreateUserWorkspace (ctx , codersdk .Me , codersdk.CreateWorkspaceRequest {
366
368
TemplateID : immutable .ID ,
367
369
Name : coderdtest .RandomUsername (t ),
368
370
RichParameterValues : []codersdk.WorkspaceBuildParameter {
371
+ {Name : "isimmutable" , Value : "true" },
369
372
{Name : "immutable" , Value : "coder" },
370
373
},
371
374
})
372
375
require .NoError (t , err )
373
376
coderdtest .AwaitWorkspaceBuildJobCompleted (t , templateAdmin , wrk .LatestBuild .ID )
374
377
375
- // No new value is acceptable
378
+ // Try new values
376
379
bld , err := templateAdmin .CreateWorkspaceBuild (ctx , wrk .ID , codersdk.CreateWorkspaceBuildRequest {
377
380
Transition : codersdk .WorkspaceTransitionStart ,
378
- })
379
- require .NoError (t , err )
380
- coderdtest .AwaitWorkspaceBuildJobCompleted (t , templateAdmin , bld .ID )
381
-
382
- params , err := templateAdmin .WorkspaceBuildParameters (ctx , bld .ID )
383
- require .NoError (t , err )
384
- require .Len (t , params , 1 )
385
- require .Equal (t , "coder" , params [0 ].Value )
386
-
387
- // Update the value to something else, which should fail
388
- _ , err = templateAdmin .CreateWorkspaceBuild (ctx , wrk .ID , codersdk.CreateWorkspaceBuildRequest {
389
- Transition : codersdk .WorkspaceTransitionStart ,
390
381
RichParameterValues : []codersdk.WorkspaceBuildParameter {
391
- {Name : "immutable" , Value : "foo" },
382
+ {Name : "isimmutable" , Value : "false" },
383
+ {Name : "immutable" , Value : "not-coder" },
392
384
},
393
385
})
394
- require .ErrorContains (t , err , `Parameter "immutable" is not mutable` )
386
+ require .NoError (t , err )
387
+ coderdtest .AwaitWorkspaceBuildJobCompleted (t , templateAdmin , bld .ID )
395
388
})
396
389
})
397
390
}
0 commit comments