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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 4 deletions

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")
})
}

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,
])

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