From 434b912c357f4cb1160d4b064d7a75b33e91ba15 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Tue, 21 Mar 2023 23:16:04 +0000 Subject: [PATCH 1/2] fix: use the default value for a rich parameter if unset This fixes an error thrown on the workspace settings page when a new parameter is added and the workspace hasn't been built yet. --- .../pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx index 68dbbb2e7041c..7fd5d4e9ee377 100644 --- a/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx +++ b/site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx @@ -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 }), From 4cd67c8f64d5cc14f7f3894ae3b4ba8eea44359f Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Tue, 21 Mar 2023 23:35:41 +0000 Subject: [PATCH 2/2] Allow missing mutable parameters to be specified --- site/src/api/api.test.ts | 8 +------- site/src/api/api.ts | 4 +--- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/site/src/api/api.test.ts b/site/src/api/api.test.ts index 6efe74960bf9f..b5d9d8a233376 100644 --- a/site/src/api/api.test.ts +++ b/site/src/api/api.test.ts @@ -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, ]) diff --git a/site/src/api/api.ts b/site/src/api/api.ts index 210db89a29608..d35e610279bd3 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -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