(t *testing.T)
| 20 | ) |
| 21 | |
| 22 | func TestResolveParameters(t *testing.T) { |
| 23 | t.Parallel() |
| 24 | |
| 25 | t.Run("NewImmutable", func(t *testing.T) { |
| 26 | t.Parallel() |
| 27 | |
| 28 | ctrl := gomock.NewController(t) |
| 29 | render := rendermock.NewMockRenderer(ctrl) |
| 30 | |
| 31 | // A single immutable parameter with no previous value. |
| 32 | render.EXPECT(). |
| 33 | Render(gomock.Any(), gomock.Any(), gomock.Any()). |
| 34 | AnyTimes(). |
| 35 | Return(&preview.Output{ |
| 36 | Parameters: []previewtypes.Parameter{ |
| 37 | { |
| 38 | ParameterData: previewtypes.ParameterData{ |
| 39 | Name: "immutable", |
| 40 | Type: previewtypes.ParameterTypeString, |
| 41 | FormType: provider.ParameterFormTypeInput, |
| 42 | Mutable: false, |
| 43 | DefaultValue: previewtypes.StringLiteral("foo"), |
| 44 | Required: true, |
| 45 | }, |
| 46 | Value: previewtypes.StringLiteral("foo"), |
| 47 | Diagnostics: nil, |
| 48 | }, |
| 49 | }, |
| 50 | }, nil) |
| 51 | |
| 52 | ctx := testutil.Context(t, testutil.WaitShort) |
| 53 | values, err := dynamicparameters.ResolveParameters(ctx, uuid.New(), render, false, |
| 54 | []database.WorkspaceBuildParameter{}, // No previous values |
| 55 | []codersdk.WorkspaceBuildParameter{}, // No new build values |
| 56 | []database.TemplateVersionPresetParameter{}, // No preset values |
| 57 | ) |
| 58 | require.NoError(t, err) |
| 59 | require.Equal(t, map[string]string{"immutable": "foo"}, values) |
| 60 | }) |
| 61 | |
| 62 | // Tests a parameter going from mutable -> immutable |
| 63 | t.Run("BecameImmutable", func(t *testing.T) { |
| 64 | t.Parallel() |
| 65 | |
| 66 | ctrl := gomock.NewController(t) |
| 67 | render := rendermock.NewMockRenderer(ctrl) |
| 68 | |
| 69 | mutable := previewtypes.ParameterData{ |
| 70 | Name: "immutable", |
| 71 | Type: previewtypes.ParameterTypeString, |
| 72 | FormType: provider.ParameterFormTypeInput, |
| 73 | Mutable: true, |
| 74 | DefaultValue: previewtypes.StringLiteral("foo"), |
| 75 | Required: true, |
| 76 | } |
| 77 | immutable := mutable |
| 78 | immutable.Mutable = false |
| 79 |
nothing calls this directly
no test coverage detected