feat!: patchTemplateMeta to use optional fields (#24984)

Closes https://github.com/coder/coder/issues/13112

**Breaking Change**: Removed status code `StatusNotModified` when no
diffs occur in a patch. Now the patch is always applied and a template
is always returned.
This commit is contained in:
Steven Masley
2026-05-11 12:43:52 -05:00
committed by GitHub
parent 3986aa8a51
commit 19573e8aee
18 changed files with 1028 additions and 356 deletions
+2 -1
View File
@@ -10,6 +10,7 @@ import (
"github.com/coder/coder/v2/cli/clitest"
"github.com/coder/coder/v2/coderd/coderdtest"
"github.com/coder/coder/v2/coderd/rbac"
"github.com/coder/coder/v2/coderd/util/ptr"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
"github.com/coder/coder/v2/enterprise/coderd/license"
@@ -46,7 +47,7 @@ func TestStart(t *testing.T) {
coderdtest.AwaitTemplateVersionJobCompleted(t, templateAdminClient, oldVersion.ID)
require.Equal(t, oldVersion.ID, template.ActiveVersionID)
template = coderdtest.UpdateTemplateMeta(t, templateAdminClient, template.ID, codersdk.UpdateTemplateMeta{
RequireActiveVersion: true,
RequireActiveVersion: ptr.Ref(true),
})
require.True(t, template.RequireActiveVersion)
+20 -20
View File
@@ -218,20 +218,20 @@ func TestTemplateEdit(t *testing.T) {
}
template, err := ownerClient.UpdateTemplateMeta(ctx, dbtemplate.ID, codersdk.UpdateTemplateMeta{
Name: expectedName,
Name: ptr.Ref(expectedName),
DisplayName: &expectedDisplayName,
Description: &expectedDescription,
Icon: &expectedIcon,
DefaultTTLMillis: expectedDefaultTTLMillis,
AllowUserAutostop: expectedAllowAutostop,
AllowUserAutostart: expectedAllowAutostart,
FailureTTLMillis: expectedFailureTTLMillis,
TimeTilDormantMillis: expectedDormancyMillis,
TimeTilDormantAutoDeleteMillis: expectedAutoDeleteMillis,
RequireActiveVersion: expectedRequireActiveVersion,
DefaultTTLMillis: ptr.Ref(expectedDefaultTTLMillis),
AllowUserAutostop: ptr.Ref(expectedAllowAutostop),
AllowUserAutostart: ptr.Ref(expectedAllowAutostart),
FailureTTLMillis: ptr.Ref(expectedFailureTTLMillis),
TimeTilDormantMillis: ptr.Ref(expectedDormancyMillis),
TimeTilDormantAutoDeleteMillis: ptr.Ref(expectedAutoDeleteMillis),
RequireActiveVersion: ptr.Ref(expectedRequireActiveVersion),
DeprecationMessage: ptr.Ref(deprecationMessage),
DisableEveryoneGroupAccess: expectedDisableEveryone,
AllowUserCancelWorkspaceJobs: expectedAllowCancelJobs,
DisableEveryoneGroupAccess: ptr.Ref(expectedDisableEveryone),
AllowUserCancelWorkspaceJobs: ptr.Ref(expectedAllowCancelJobs),
AutostartRequirement: &codersdk.TemplateAutostartRequirement{
DaysOfWeek: expectedAutostartDaysOfWeek,
},
@@ -266,20 +266,20 @@ func TestTemplateEdit(t *testing.T) {
expectedAutoStopWeeks = 2
template, err = ownerClient.UpdateTemplateMeta(ctx, dbtemplate.ID, codersdk.UpdateTemplateMeta{
Name: expectedName,
Name: ptr.Ref(expectedName),
DisplayName: &expectedDisplayName,
Description: &expectedDescription,
Icon: &expectedIcon,
DefaultTTLMillis: expectedDefaultTTLMillis,
AllowUserAutostop: expectedAllowAutostop,
AllowUserAutostart: expectedAllowAutostart,
FailureTTLMillis: expectedFailureTTLMillis,
TimeTilDormantMillis: expectedDormancyMillis,
TimeTilDormantAutoDeleteMillis: expectedAutoDeleteMillis,
RequireActiveVersion: expectedRequireActiveVersion,
DefaultTTLMillis: ptr.Ref(expectedDefaultTTLMillis),
AllowUserAutostop: ptr.Ref(expectedAllowAutostop),
AllowUserAutostart: ptr.Ref(expectedAllowAutostart),
FailureTTLMillis: ptr.Ref(expectedFailureTTLMillis),
TimeTilDormantMillis: ptr.Ref(expectedDormancyMillis),
TimeTilDormantAutoDeleteMillis: ptr.Ref(expectedAutoDeleteMillis),
RequireActiveVersion: ptr.Ref(expectedRequireActiveVersion),
DeprecationMessage: ptr.Ref(deprecationMessage),
DisableEveryoneGroupAccess: expectedDisableEveryone,
AllowUserCancelWorkspaceJobs: expectedAllowCancelJobs,
DisableEveryoneGroupAccess: ptr.Ref(expectedDisableEveryone),
AllowUserCancelWorkspaceJobs: ptr.Ref(expectedAllowCancelJobs),
AutostartRequirement: &codersdk.TemplateAutostartRequirement{
DaysOfWeek: expectedAutostartDaysOfWeek,
},