@@ -172,6 +172,14 @@ func TestPatchTemplateMeta(t *testing.T) {
172
172
assert .Equal (t , req .Description , updated .Description )
173
173
assert .Equal (t , req .MaxTTLMillis , updated .MaxTTLMillis )
174
174
assert .Equal (t , req .MinAutostartIntervalMillis , updated .MinAutostartIntervalMillis )
175
+
176
+ // Extra paranoid: did it _really_ happen?
177
+ updated , err = client .Template (ctx , template .ID )
178
+ require .NoError (t , err )
179
+ assert .Greater (t , updated .UpdatedAt , template .UpdatedAt )
180
+ assert .Equal (t , req .Description , updated .Description )
181
+ assert .Equal (t , req .MaxTTLMillis , updated .MaxTTLMillis )
182
+ assert .Equal (t , req .MinAutostartIntervalMillis , updated .MinAutostartIntervalMillis )
175
183
})
176
184
177
185
t .Run ("NotModified" , func (t * testing.T ) {
@@ -195,9 +203,40 @@ func TestPatchTemplateMeta(t *testing.T) {
195
203
updated , err := client .Template (ctx , template .ID )
196
204
require .NoError (t , err )
197
205
assert .Equal (t , updated .UpdatedAt , template .UpdatedAt )
198
- assert .Equal (t , req .Description , updated .Description )
199
- assert .Equal (t , req .MaxTTLMillis , updated .MaxTTLMillis )
200
- assert .Equal (t , req .MinAutostartIntervalMillis , updated .MinAutostartIntervalMillis )
206
+ assert .Equal (t , template .Description , updated .Description )
207
+ assert .Equal (t , template .MaxTTLMillis , updated .MaxTTLMillis )
208
+ assert .Equal (t , template .MinAutostartIntervalMillis , updated .MinAutostartIntervalMillis )
209
+ })
210
+
211
+ t .Run ("Invalid" , func (t * testing.T ) {
212
+ t .Parallel ()
213
+ ctx := context .Background ()
214
+ client := coderdtest .New (t , nil )
215
+ user := coderdtest .CreateFirstUser (t , client )
216
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
217
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID , func (ctr * codersdk.CreateTemplateRequest ) {
218
+ ctr .Description = "original description"
219
+ ctr .MaxTTLMillis = ptr .Ref (24 * time .Hour .Milliseconds ())
220
+ ctr .MinAutostartIntervalMillis = ptr .Ref (time .Hour .Milliseconds ())
221
+ })
222
+ req := codersdk.UpdateTemplateMeta {
223
+ MaxTTLMillis : - int64 (time .Hour ),
224
+ MinAutostartIntervalMillis : - int64 (time .Hour ),
225
+ }
226
+ _ , err := client .UpdateTemplateMeta (ctx , template .ID , req )
227
+ var apiErr * codersdk.Error
228
+ require .ErrorAs (t , err , & apiErr )
229
+ require .Contains (t , apiErr .Message , "Invalid request" )
230
+ require .Len (t , apiErr .Validations , 2 )
231
+ assert .Equal (t , apiErr .Validations [0 ].Field , "max_ttl_ms" )
232
+ assert .Equal (t , apiErr .Validations [1 ].Field , "min_autostart_interval_ms" )
233
+
234
+ updated , err := client .Template (ctx , template .ID )
235
+ require .NoError (t , err )
236
+ assert .WithinDuration (t , template .UpdatedAt , updated .UpdatedAt , time .Minute )
237
+ assert .Equal (t , template .Description , updated .Description )
238
+ assert .Equal (t , template .MaxTTLMillis , updated .MaxTTLMillis )
239
+ assert .Equal (t , template .MinAutostartIntervalMillis , updated .MinAutostartIntervalMillis )
201
240
})
202
241
}
203
242
0 commit comments