mirror of
https://github.com/coder/coder.git
synced 2025-07-06 15:41:45 +00:00
fix: coder_parameter fallbacks to default (#7240)
This commit is contained in:
@ -544,6 +544,15 @@ func (api *API) postWorkspaceBuilds(rw http.ResponseWriter, r *http.Request) {
|
||||
// Check if parameter is defined in previous build
|
||||
if buildParameter, found := findWorkspaceBuildParameter(apiLastBuildParameters, templateVersionParameter.Name); found {
|
||||
parameters = append(parameters, *buildParameter)
|
||||
continue
|
||||
}
|
||||
|
||||
// Check if default parameter value is in schema
|
||||
if templateVersionParameter.DefaultValue != "" {
|
||||
parameters = append(parameters, codersdk.WorkspaceBuildParameter{
|
||||
Name: templateVersionParameter.Name,
|
||||
Value: templateVersionParameter.DefaultValue,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -901,12 +901,23 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
|
||||
nextBuildParameters := []codersdk.WorkspaceBuildParameter{
|
||||
{Name: newImmutableParameterName, Value: "good"},
|
||||
}
|
||||
_, err = client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
|
||||
nextWorkspaceBuild, err := client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
|
||||
TemplateVersionID: version2.ID,
|
||||
Transition: codersdk.WorkspaceTransitionStart,
|
||||
RichParameterValues: nextBuildParameters,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NotEqual(t, workspaceBuild, nextWorkspaceBuild)
|
||||
coderdtest.AwaitWorkspaceBuildJob(t, client, nextWorkspaceBuild.ID)
|
||||
|
||||
workspaceBuildParameters, err := client.WorkspaceBuildParameters(ctx, nextWorkspaceBuild.ID)
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedNextBuildParameters := append(initialBuildParameters, codersdk.WorkspaceBuildParameter{
|
||||
Name: newImmutableParameterName,
|
||||
Value: "good",
|
||||
})
|
||||
require.ElementsMatch(t, expectedNextBuildParameters, workspaceBuildParameters)
|
||||
})
|
||||
|
||||
t.Run("NewImmutableOptionalParameterUsesDefault", func(t *testing.T) {
|
||||
@ -961,12 +972,23 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
|
||||
defer cancel()
|
||||
|
||||
var nextBuildParameters []codersdk.WorkspaceBuildParameter
|
||||
_, err = client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
|
||||
nextWorkspaceBuild, err := client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
|
||||
TemplateVersionID: version2.ID,
|
||||
Transition: codersdk.WorkspaceTransitionStart,
|
||||
RichParameterValues: nextBuildParameters,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NotEqual(t, workspaceBuild, nextWorkspaceBuild)
|
||||
coderdtest.AwaitWorkspaceBuildJob(t, client, nextWorkspaceBuild.ID)
|
||||
|
||||
workspaceBuildParameters, err := client.WorkspaceBuildParameters(ctx, nextWorkspaceBuild.ID)
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedNextBuildParameters := append(initialBuildParameters, codersdk.WorkspaceBuildParameter{
|
||||
Name: newImmutableParameterName,
|
||||
Value: "12345",
|
||||
})
|
||||
require.ElementsMatch(t, expectedNextBuildParameters, workspaceBuildParameters)
|
||||
})
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user