Skip to content

Commit 7d9a763

Browse files
fix(site): Fix update when missing parameters (#7221)
1 parent 93d0956 commit 7d9a763

File tree

3 files changed

+45
-25
lines changed

3 files changed

+45
-25
lines changed

site/src/api/api.test.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,12 @@ describe("api.ts", () => {
173173
expect(api.postWorkspaceBuild).toHaveBeenCalledWith(MockWorkspace.id, {
174174
transition: "start",
175175
template_version_id: MockTemplate.active_version_id,
176-
rich_parameter_values: [],
176+
rich_parameter_values: [
177+
{
178+
name: "first_parameter",
179+
value: "mock-abc",
180+
},
181+
],
177182
})
178183
})
179184

@@ -222,7 +227,12 @@ describe("api.ts", () => {
222227
expect(api.postWorkspaceBuild).toHaveBeenCalledWith(MockWorkspace.id, {
223228
transition: "start",
224229
template_version_id: MockTemplate.active_version_id,
225-
rich_parameter_values: [],
230+
rich_parameter_values: [
231+
{
232+
name: "first_parameter",
233+
value: "mock-abc",
234+
},
235+
],
226236
})
227237
})
228238
})

site/src/api/api.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1041,10 +1041,19 @@ export const updateWorkspace = async (
10411041
throw new MissingBuildParameters(missingParameters)
10421042
}
10431043

1044+
// Merge parameters using name as key
1045+
const richParameterValues = newBuildParameters
1046+
oldBuildParameters.forEach((oldParam) => {
1047+
const newParam = richParameterValues.find((p) => p.name === oldParam.name)
1048+
if (newParam === undefined) {
1049+
richParameterValues.push(oldParam)
1050+
}
1051+
})
1052+
10441053
return postWorkspaceBuild(workspace.id, {
10451054
transition: "start",
10461055
template_version_id: activeVersionId,
1047-
rich_parameter_values: newBuildParameters,
1056+
rich_parameter_values: richParameterValues,
10481057
})
10491058
}
10501059

site/src/xServices/workspace/workspaceXService.ts

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -117,31 +117,32 @@ export const checks = {
117117
const permissionsToCheck = (
118118
workspace: TypesGen.Workspace,
119119
template: TypesGen.Template,
120-
) => ({
121-
[checks.readWorkspace]: {
122-
object: {
123-
resource_type: "workspace",
124-
resource_id: workspace.id,
125-
owner_id: workspace.owner_id,
120+
) =>
121+
({
122+
[checks.readWorkspace]: {
123+
object: {
124+
resource_type: "workspace",
125+
resource_id: workspace.id,
126+
owner_id: workspace.owner_id,
127+
},
128+
action: "read",
126129
},
127-
action: "read",
128-
},
129-
[checks.updateWorkspace]: {
130-
object: {
131-
resource_type: "workspace",
132-
resource_id: workspace.id,
133-
owner_id: workspace.owner_id,
130+
[checks.updateWorkspace]: {
131+
object: {
132+
resource_type: "workspace",
133+
resource_id: workspace.id,
134+
owner_id: workspace.owner_id,
135+
},
136+
action: "update",
134137
},
135-
action: "update",
136-
},
137-
[checks.updateTemplate]: {
138-
object: {
139-
resource_type: "template",
140-
resource_id: template.id,
138+
[checks.updateTemplate]: {
139+
object: {
140+
resource_type: "template",
141+
resource_id: template.id,
142+
},
143+
action: "update",
141144
},
142-
action: "update",
143-
},
144-
})
145+
} as const)
145146

146147
export const workspaceMachine = createMachine(
147148
{

0 commit comments

Comments
 (0)