@@ -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 newvalue is acceptable
380
+ //Try newvalues
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
}