fix: use the default value for a rich parameter if unset (#6715)

This fixes an error thrown on the workspace settings page when
a new parameter is added and the workspace hasn't been built yet.
This commit is contained in:
Kyle Carberry
2023-03-22 00:02:55 +00:00
committed by GitHub
parent abe1e89f80
commit 38d278ac46
3 changed files with 6 additions and 11 deletions
+1 -7
View File
@@ -2,7 +2,6 @@ import axios from "axios"
import {
MockTemplate,
MockTemplateVersionParameter1,
MockTemplateVersionParameter2,
MockWorkspace,
MockWorkspaceBuild,
MockWorkspaceBuildParameter1,
@@ -185,10 +184,7 @@ describe("api.ts", () => {
jest.spyOn(api, "getWorkspaceBuildParameters").mockResolvedValue([])
jest
.spyOn(api, "getTemplateVersionRichParameters")
.mockResolvedValue([
MockTemplateVersionParameter1,
{ ...MockTemplateVersionParameter2, mutable: false },
])
.mockResolvedValue([MockTemplateVersionParameter1])
let error = new Error()
try {
@@ -198,8 +194,6 @@ describe("api.ts", () => {
}
expect(error).toBeInstanceOf(api.MissingBuildParameters)
// Verify if the correct missing parameters are being passed
// It should not require immutable parameters
expect((error as api.MissingBuildParameters).parameters).toEqual([
MockTemplateVersionParameter1,
])
+1 -3
View File
@@ -976,9 +976,7 @@ const getMissingParameters = (
templateParameters: TypesGen.TemplateVersionParameter[],
) => {
const missingParameters: TypesGen.TemplateVersionParameter[] = []
const requiredParameters = templateParameters.filter(
(p) => p.required && p.mutable,
)
const requiredParameters = templateParameters.filter((p) => p.required)
for (const parameter of requiredParameters) {
// Check if there is a new value
@@ -37,7 +37,10 @@ export const WorkspaceSettingsForm: FC<{
(p) => p.name === parameter.name,
)
if (!buildParameter) {
throw new Error("Missing build parameter for " + parameter.name)
return {
name: parameter.name,
value: parameter.default_value,
}
}
return buildParameter
}),