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

View File

@ -1265,7 +1265,8 @@ func TestWorkspaceUpdateAutostart(t *testing.T) {
if len(auditor.AuditLogs) < 7 { if len(auditor.AuditLogs) < 7 {
return false 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) }, testutil.WaitShort, testutil.IntervalFast)
}) })
} }
@ -1384,7 +1385,8 @@ func TestWorkspaceUpdateTTL(t *testing.T) {
if len(auditor.AuditLogs) != 7 { if len(auditor.AuditLogs) != 7 {
return false 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") }, testutil.WaitMedium, testutil.IntervalFast, "expected audit log to be written")
}) })
} }

View File

@ -2,6 +2,7 @@ import axios from "axios"
import { import {
MockTemplate, MockTemplate,
MockTemplateVersionParameter1, MockTemplateVersionParameter1,
MockTemplateVersionParameter2,
MockWorkspace, MockWorkspace,
MockWorkspaceBuild, MockWorkspaceBuild,
MockWorkspaceBuildParameter1, MockWorkspaceBuildParameter1,
@ -184,7 +185,10 @@ describe("api.ts", () => {
jest.spyOn(api, "getWorkspaceBuildParameters").mockResolvedValue([]) jest.spyOn(api, "getWorkspaceBuildParameters").mockResolvedValue([])
jest jest
.spyOn(api, "getTemplateVersionRichParameters") .spyOn(api, "getTemplateVersionRichParameters")
.mockResolvedValue([MockTemplateVersionParameter1]) .mockResolvedValue([
MockTemplateVersionParameter1,
{ ...MockTemplateVersionParameter2, mutable: false },
])
let error = new Error() let error = new Error()
try { try {
@ -194,6 +198,8 @@ describe("api.ts", () => {
} }
expect(error).toBeInstanceOf(api.MissingBuildParameters) 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([ expect((error as api.MissingBuildParameters).parameters).toEqual([
MockTemplateVersionParameter1, MockTemplateVersionParameter1,
]) ])

View File

@ -976,7 +976,9 @@ const getMissingParameters = (
templateParameters: TypesGen.TemplateVersionParameter[], templateParameters: TypesGen.TemplateVersionParameter[],
) => { ) => {
const missingParameters: 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) { for (const parameter of requiredParameters) {
// Check if there is a new value // Check if there is a new value