fix: block updating mutable parameters (#6717)

This commit is contained in:
Kyle Carberry
2023-03-22 11:05:04 -05:00
committed by GitHub
parent ab764db8c8
commit ad9c9b468f
3 changed files with 14 additions and 4 deletions
+4 -2
View File
@@ -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")
})
}
+7 -1
View File
@@ -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,
])
+3 -1
View File
@@ -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