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