MCPcopy Index your code
hub / github.com/coder/coder / TestResolveTemplateMetaUpdate

Function TestResolveTemplateMetaUpdate

coderd/templates_meta_update_internal_test.go:94–442  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

92}
93
94func TestResolveTemplateMetaUpdate(t *testing.T) {
95 t.Parallel()
96
97 type expected struct {
98 // override is applied to baselineResolved to produce the expected
99 // templateMetaUpdate. Allows each case to express only its delta.
100 override func(*templateMetaUpdate)
101 base func(template *database.Template)
102 // validErrFields, if non-empty, asserts the resolver produced a
103 // validation error for each named field.
104 validErrFields []string
105 }
106
107 tests := []struct {
108 name string
109 req codersdk.UpdateTemplateMeta
110 expected expected
111 }{
112 // Sanity check: an empty PATCH preserves every field.
113 {
114 name: "EmptyRequestPreservesEverything",
115 req: codersdk.UpdateTemplateMeta{},
116 expected: expected{override: func(*templateMetaUpdate) {}},
117 },
118
119 // One case per pointer field: each case sends only that field
120 // and asserts only that field changed in the resolved struct.
121 {
122 name: "Name",
123 req: codersdk.UpdateTemplateMeta{Name: ptr.Ref("renamed")},
124 expected: expected{override: func(r *templateMetaUpdate) {
125 r.name = "renamed"
126 }},
127 },
128 {
129 name: "NameEmptyStringFallsBackToCurrent",
130 req: codersdk.UpdateTemplateMeta{Name: ptr.Ref("")},
131 // Empty string is treated as "do not clear" because the UI
132 // disallows clearing the name. Resolver must keep the
133 // existing name.
134 // This is a unique case to just the `name` field.
135 expected: expected{override: func(*templateMetaUpdate) {}},
136 },
137 {
138 name: "DisplayName",
139 req: codersdk.UpdateTemplateMeta{DisplayName: ptr.Ref("Renamed")},
140 expected: expected{override: func(r *templateMetaUpdate) {
141 r.displayName = "Renamed"
142 }},
143 },
144 {
145 name: "Description",
146 req: codersdk.UpdateTemplateMeta{Description: ptr.Ref("New description")},
147 expected: expected{override: func(r *templateMetaUpdate) {
148 r.description = "New description"
149 }},
150 },
151 {

Callers

nothing calls this directly

Calls 10

RefFunction · 0.92
CORSBehaviorTypeAlias · 0.92
baselineTemplateFunction · 0.85
baselineScheduleOptsFunction · 0.85
baselineResolvedFunction · 0.85
baseMethod · 0.80
RunMethod · 0.65
FatalfMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected