From 796dc7aac9b0ca2644159dca78c2cf5c081c832b Mon Sep 17 00:00:00 2001 From: Danny Kopping Date: Tue, 24 Jun 2025 07:19:47 +0200 Subject: [PATCH 1/2] chore: ignore splunk.com in linkspector (#18502) --- .github/.linkspector.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/.linkspector.yml b/.github/.linkspector.yml index 6cbd17c3c0816..1bbf60c200175 100644 --- a/.github/.linkspector.yml +++ b/.github/.linkspector.yml @@ -24,5 +24,6 @@ ignorePatterns: - pattern: "mutagen.io" - pattern: "docs.github.com" - pattern: "claude.ai" + - pattern: "splunk.com" aliveStatusCodes: - 200 From 4f98fd4e6eeb292a153cc95436dc3e1869cc54f1 Mon Sep 17 00:00:00 2001 From: Sas Swart Date: Tue, 24 Jun 2025 08:48:59 +0200 Subject: [PATCH 2/2] fix: fix validation error during workspace creation without preset (#18494) closes https://github.com/coder/coder/issues/18430. Selecting a preset, and then selecting the "None" preset used to result in a validation error because an invalid preset id ("") was sent to the backend. --------- Co-authored-by: Jaayden Halko Co-authored-by: Susana Ferreira --- .../CreateWorkspacePageView.stories.tsx | 40 +++++++++++++++++++ .../CreateWorkspacePageView.tsx | 3 +- .../CreateWorkspacePageViewExperimental.tsx | 4 ++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx index deab54d531ec4..9f7ff44a2da64 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx @@ -201,6 +201,46 @@ export const PresetReselected: Story = { }, }; +export const PresetNoneSelected: Story = { + args: { + ...PresetsButNoneSelected.args, + onSubmit: (request, owner) => { + // Assert that template_version_preset_id is not present in the request + console.assert( + !("template_version_preset_id" in request), + 'template_version_preset_id should not be present when "None" is selected', + ); + action("onSubmit")(request, owner); + }, + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + // First select a preset to set the field value + await userEvent.click(canvas.getByLabelText("Preset")); + await userEvent.click(canvas.getByText("Preset 1")); + + // Then select "None" to unset the field value + await userEvent.click(canvas.getByLabelText("Preset")); + await userEvent.click(canvas.getByText("None")); + + // Fill in required fields and submit to test the API call + await userEvent.type( + canvas.getByLabelText("Workspace Name"), + "test-workspace", + ); + await userEvent.click(canvas.getByText("Create workspace")); + }, + parameters: { + docs: { + description: { + story: + "This story tests that when 'None' preset is selected, the template_version_preset_id field is not included in the form submission. The story first selects a preset to set the field value, then selects 'None' to unset it, and finally submits the form to verify the API call behavior.", + }, + }, + }, +}; + export const ExternalAuth: Story = { args: { externalAuth: [ diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx index 7a880e8df26b6..c4a5a4e5bd023 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx @@ -369,7 +369,8 @@ export const CreateWorkspacePageView: FC = ({ setSelectedPresetIndex(index); form.setFieldValue( "template_version_preset_id", - option?.value, + // Empty string is equivalent to using None + option?.value === "" ? undefined : option?.value, ); }} placeholder="Select a preset" diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx index ef657c3fa297c..fea2b5cf96b7a 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx @@ -563,6 +563,10 @@ export const CreateWorkspacePageViewExperimental: FC< return; } setSelectedPresetIndex(index); + form.setFieldValue( + "template_version_preset_id", + index === 0 ? undefined : option, + ); }} >