@@ -26,7 +26,7 @@ func TestAccTemplateResource(t *testing.T) {
26
26
t .Skip ("Acceptance tests are disabled." )
27
27
}
28
28
ctx := context .Background ()
29
- client := integration .StartCoder (ctx , t , "template_acc" , true )
29
+ client := integration .StartCoder (ctx , t , "template_acc" , false )
30
30
firstUser , err := client .User (ctx , codersdk .Me )
31
31
require .NoError (t , err )
32
32
@@ -51,31 +51,15 @@ func TestAccTemplateResource(t *testing.T) {
51
51
},
52
52
},
53
53
ACL : testAccTemplateACLConfig {
54
- GroupACL : []testAccTemplateKeyValueConfig {
55
- {
56
- Key : PtrTo (firstUser .OrganizationIDs [0 ].String ()),
57
- Value : PtrTo ("use" ),
58
- },
59
- },
54
+ null : true ,
60
55
},
61
56
}
62
57
63
58
cfg2 := cfg1
64
59
cfg2 .Versions = slices .Clone (cfg2 .Versions )
65
60
cfg2 .Name = PtrTo ("example-template-new" )
66
- cfg2 .AllowUserAutostart = PtrTo (false )
67
61
cfg2 .Versions [0 ].Directory = & exTemplateTwo
68
62
cfg2 .Versions [0 ].Name = PtrTo ("new" )
69
- cfg2 .ACL .UserACL = []testAccTemplateKeyValueConfig {
70
- {
71
- Key : PtrTo (firstUser .ID .String ()),
72
- Value : PtrTo ("admin" ),
73
- },
74
- }
75
- cfg2 .AutostopRequirement = testAccAutostopRequirementConfig {
76
- DaysOfWeek : PtrTo ([]string {"monday" , "tuesday" }),
77
- Weeks : PtrTo (int64 (2 )),
78
- }
79
63
80
64
cfg3 := cfg2
81
65
cfg3 .Versions = slices .Clone (cfg3 .Versions )
@@ -103,9 +87,6 @@ func TestAccTemplateResource(t *testing.T) {
103
87
cfg6 := cfg4
104
88
cfg6 .Versions = slices .Clone (cfg6 .Versions [1 :])
105
89
106
- cfg7 := cfg6
107
- cfg7 .ACL .null = true
108
-
109
90
resource .Test (t , resource.TestCase {
110
91
PreCheck : func () { testAccPreCheck (t ) },
111
92
IsUnitTest : true ,
@@ -180,9 +161,6 @@ func TestAccTemplateResource(t *testing.T) {
180
161
Check : resource .ComposeAggregateTestCheckFunc (
181
162
resource .TestCheckResourceAttrSet ("coderd_template.test" , "id" ),
182
163
resource .TestCheckResourceAttr ("coderd_template.test" , "name" , "example-template-new" ),
183
- resource .TestCheckResourceAttr ("coderd_template.test" , "allow_user_auto_start" , "false" ),
184
- resource .TestCheckResourceAttr ("coderd_template.test" , "auto_stop_requirement.days_of_week.#" , "2" ),
185
- resource .TestCheckResourceAttr ("coderd_template.test" , "auto_stop_requirement.weeks" , "2" ),
186
164
resource .TestMatchTypeSetElemNestedAttrs ("coderd_template.test" , "versions.*" , map [string ]* regexp.Regexp {
187
165
"name" : regexp .MustCompile ("new" ),
188
166
}),
@@ -244,14 +222,6 @@ func TestAccTemplateResource(t *testing.T) {
244
222
}),
245
223
),
246
224
},
247
- // Unmanaged ACL
248
- {
249
- Config : cfg7 .String (t ),
250
- Check : resource .ComposeAggregateTestCheckFunc (
251
- resource .TestCheckNoResourceAttr ("coderd_template.test" , "acl" ),
252
- testAccCheckNumTemplateVersions (ctx , client , 5 ),
253
- ),
254
- },
255
225
// Resource deleted
256
226
},
257
227
})
@@ -285,6 +255,9 @@ func TestAccTemplateResource(t *testing.T) {
285
255
},
286
256
},
287
257
},
258
+ ACL : testAccTemplateACLConfig {
259
+ null : true ,
260
+ },
288
261
}
289
262
290
263
cfg2 := cfg1
@@ -367,6 +340,122 @@ func TestAccTemplateResource(t *testing.T) {
367
340
})
368
341
}
369
342
343
+ func TestAccTemplateResourceEnterprise (t * testing.T ) {
344
+ if os .Getenv ("TF_ACC" ) == "" {
345
+ t .Skip ("Acceptance tests are disabled." )
346
+ }
347
+ ctx := context .Background ()
348
+ client := integration .StartCoder (ctx , t , "template_acc" , true )
349
+ firstUser , err := client .User (ctx , codersdk .Me )
350
+ require .NoError (t , err )
351
+
352
+ cfg1 := testAccTemplateResourceConfig {
353
+ URL : client .URL .String (),
354
+ Token : client .SessionToken (),
355
+ Name : PtrTo ("example-template" ),
356
+ Versions : []testAccTemplateVersionConfig {
357
+ {
358
+ // Auto-generated version name
359
+ Directory : PtrTo ("../../integration/template-test/example-template" ),
360
+ Active : PtrTo (true ),
361
+ // TODO(ethanndickson): Remove this when we add in `*.tfvars` parsing
362
+ TerraformVariables : []testAccTemplateKeyValueConfig {
363
+ {
364
+ Key : PtrTo ("name" ),
365
+ Value : PtrTo ("world" ),
366
+ },
367
+ },
368
+ },
369
+ },
370
+ ACL : testAccTemplateACLConfig {
371
+ GroupACL : []testAccTemplateKeyValueConfig {
372
+ {
373
+ Key : PtrTo (firstUser .OrganizationIDs [0 ].String ()),
374
+ Value : PtrTo ("use" ),
375
+ },
376
+ },
377
+ UserACL : []testAccTemplateKeyValueConfig {
378
+ {
379
+ Key : PtrTo (firstUser .ID .String ()),
380
+ Value : PtrTo ("admin" ),
381
+ },
382
+ },
383
+ },
384
+ }
385
+
386
+ cfg2 := cfg1
387
+ cfg2 .ACL .null = true
388
+
389
+ cfg3 := cfg2
390
+ cfg3 .AllowUserAutostart = PtrTo (false )
391
+ cfg3 .AutostopRequirement = testAccAutostopRequirementConfig {
392
+ DaysOfWeek : PtrTo ([]string {"monday" , "tuesday" }),
393
+ Weeks : PtrTo (int64 (2 )),
394
+ }
395
+
396
+ resource .Test (t , resource.TestCase {
397
+ PreCheck : func () { testAccPreCheck (t ) },
398
+ IsUnitTest : true ,
399
+ ProtoV6ProviderFactories : testAccProtoV6ProviderFactories ,
400
+ Steps : []resource.TestStep {
401
+ {
402
+ Config : cfg1 .String (t ),
403
+ Check : resource .ComposeAggregateTestCheckFunc (
404
+ resource .TestCheckResourceAttr ("coderd_template.test" , "acl.groups.#" , "1" ),
405
+ resource .TestMatchTypeSetElemNestedAttrs ("coderd_template.test" , "acl.groups.*" , map [string ]* regexp.Regexp {
406
+ "id" : regexp .MustCompile (".+" ),
407
+ "role" : regexp .MustCompile ("^use$" ),
408
+ }),
409
+ resource .TestMatchTypeSetElemNestedAttrs ("coderd_template.test" , "acl.users.*" , map [string ]* regexp.Regexp {
410
+ "id" : regexp .MustCompile (".+" ),
411
+ "role" : regexp .MustCompile ("^admin$" ),
412
+ }),
413
+ ),
414
+ },
415
+ {
416
+ Config : cfg2 .String (t ),
417
+ Check : resource .ComposeAggregateTestCheckFunc (
418
+ resource .TestCheckNoResourceAttr ("coderd_template.test" , "acl" ),
419
+ func (s * terraform.State ) error {
420
+ templates , err := client .Templates (ctx , codersdk.TemplateFilter {})
421
+ if err != nil {
422
+ return err
423
+ }
424
+ if len (templates ) != 1 {
425
+ return fmt .Errorf ("expected 1 template, got %d" , len (templates ))
426
+ }
427
+ acl , err := client .TemplateACL (ctx , templates [0 ].ID )
428
+ if err != nil {
429
+ return err
430
+ }
431
+ if len (acl .Groups ) != 1 {
432
+ return fmt .Errorf ("expected 1 group ACL, got %d" , len (acl .Groups ))
433
+ }
434
+ if acl .Groups [0 ].Role != "use" && acl .Groups [0 ].ID != firstUser .OrganizationIDs [0 ] {
435
+ return fmt .Errorf ("expected group ACL to be 'use' for %s, got %s" , firstUser .OrganizationIDs [0 ].String (), acl .Groups [0 ].Role )
436
+ }
437
+ if len (acl .Users ) != 1 {
438
+ return fmt .Errorf ("expected 1 user ACL, got %d" , len (acl .Users ))
439
+ }
440
+ if acl .Users [0 ].Role != "admin" && acl .Users [0 ].ID != firstUser .ID {
441
+ return fmt .Errorf ("expected user ACL to be 'admin' for %s, got %s" , firstUser .ID .String (), acl .Users [0 ].Role )
442
+ }
443
+ return nil
444
+ },
445
+ ),
446
+ },
447
+ {
448
+ Config : cfg3 .String (t ),
449
+ Check : resource .ComposeAggregateTestCheckFunc (
450
+ resource .TestCheckResourceAttr ("coderd_template.test" , "allow_user_auto_start" , "false" ),
451
+ resource .TestCheckResourceAttr ("coderd_template.test" , "auto_stop_requirement.days_of_week.#" , "2" ),
452
+ resource .TestCheckResourceAttr ("coderd_template.test" , "auto_stop_requirement.weeks" , "2" ),
453
+ ),
454
+ },
455
+ },
456
+ })
457
+ }
458
+
370
459
func TestAccTemplateResourceAGPL (t * testing.T ) {
371
460
if os .Getenv ("TF_ACC" ) == "" {
372
461
t .Skip ("Acceptance tests are disabled." )
0 commit comments