From 69772fc6760ab166478fee2e9e35b71d1bc97802 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Wed, 22 Mar 2023 00:31:44 +0000 Subject: [PATCH] fix: block updating mutable parameters --- coderd/workspaces_test.go | 6 ++++-- site/src/api/api.test.ts | 8 +++++++- site/src/api/api.ts | 4 +++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/coderd/workspaces_test.go b/coderd/workspaces_test.go index 0314c8f088441..3105c07961d46 100644 --- a/coderd/workspaces_test.go +++ b/coderd/workspaces_test.go @@ -1265,7 +1265,8 @@ func TestWorkspaceUpdateAutostart(t *testing.T) { if len(auditor.AuditLogs) < 7 { return false } - return auditor.AuditLogs[6].Action == database.AuditActionWrite + return auditor.AuditLogs[6].Action == database.AuditActionWrite || + auditor.AuditLogs[5].Action == database.AuditActionWrite }, testutil.WaitShort, testutil.IntervalFast) }) } @@ -1384,7 +1385,8 @@ func TestWorkspaceUpdateTTL(t *testing.T) { if len(auditor.AuditLogs) != 7 { return false } - return auditor.AuditLogs[6].Action == database.AuditActionWrite + return auditor.AuditLogs[6].Action == database.AuditActionWrite || + auditor.AuditLogs[5].Action == database.AuditActionWrite }, testutil.WaitMedium, testutil.IntervalFast, "expected audit log to be written") }) } diff --git a/site/src/api/api.test.ts b/site/src/api/api.test.ts index b5d9d8a233376..6efe74960bf9f 100644 --- a/site/src/api/api.test.ts +++ b/site/src/api/api.test.ts @@ -2,6 +2,7 @@ import axios from "axios" import { MockTemplate, MockTemplateVersionParameter1, + MockTemplateVersionParameter2, MockWorkspace, MockWorkspaceBuild, MockWorkspaceBuildParameter1, @@ -184,7 +185,10 @@ describe("api.ts", () => { jest.spyOn(api, "getWorkspaceBuildParameters").mockResolvedValue([]) jest .spyOn(api, "getTemplateVersionRichParameters") - .mockResolvedValue([MockTemplateVersionParameter1]) + .mockResolvedValue([ + MockTemplateVersionParameter1, + { ...MockTemplateVersionParameter2, mutable: false }, + ]) let error = new Error() try { @@ -194,6 +198,8 @@ 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 d35e610279bd3..210db89a29608 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -976,7 +976,9 @@ const getMissingParameters = ( templateParameters: TypesGen.TemplateVersionParameter[], ) => { const missingParameters: TypesGen.TemplateVersionParameter[] = [] - const requiredParameters = templateParameters.filter((p) => p.required) + const requiredParameters = templateParameters.filter( + (p) => p.required && p.mutable, + ) for (const parameter of requiredParameters) { // Check if there is a new value