@@ -357,6 +357,12 @@ func TestAccTemplateResourceEnterprise(t *testing.T) {
357357firstUser ,err := client .User (ctx ,codersdk .Me )
358358require .NoError (t ,err )
359359
360+ group ,err := client .CreateGroup (ctx ,firstUser .OrganizationIDs [0 ], codersdk.CreateGroupRequest {
361+ Name :"bosses" ,
362+ QuotaAllowance :200 ,
363+ })
364+ require .NoError (t ,err )
365+
360366cfg1 := testAccTemplateResourceConfig {
361367URL :client .URL .String (),
362368Token :client .SessionToken (),
@@ -366,13 +372,6 @@ func TestAccTemplateResourceEnterprise(t *testing.T) {
366372// Auto-generated version name
367373Directory :PtrTo ("../../integration/template-test/example-template" ),
368374Active :PtrTo (true ),
369- // TODO(ethanndickson): Remove this when we add in `*.tfvars` parsing
370- TerraformVariables : []testAccTemplateKeyValueConfig {
371- {
372- Key :PtrTo ("name" ),
373- Value :PtrTo ("world" ),
374- },
375- },
376375},
377376},
378377ACL :testAccTemplateACLConfig {
@@ -381,6 +380,10 @@ func TestAccTemplateResourceEnterprise(t *testing.T) {
381380Key :PtrTo (firstUser .OrganizationIDs [0 ].String ()),
382381Value :PtrTo ("use" ),
383382},
383+ {
384+ Key :PtrTo (group .ID .String ()),
385+ Value :PtrTo ("admin" ),
386+ },
384387},
385388UserACL : []testAccTemplateKeyValueConfig {
386389{
@@ -392,11 +395,14 @@ func TestAccTemplateResourceEnterprise(t *testing.T) {
392395}
393396
394397cfg2 := cfg1
395- cfg2 .ACL .null = true
398+ cfg2 .ACL .GroupACL = slices . Clone ( cfg2 . ACL . GroupACL [ 1 :])
396399
397400cfg3 := cfg2
398- cfg3 .AllowUserAutostart = PtrTo (false )
399- cfg3 .AutostopRequirement = testAccAutostopRequirementConfig {
401+ cfg3 .ACL .null = true
402+
403+ cfg4 := cfg3
404+ cfg4 .AllowUserAutostart = PtrTo (false )
405+ cfg4 .AutostopRequirement = testAccAutostopRequirementConfig {
400406DaysOfWeek :PtrTo ([]string {"monday" ,"tuesday" }),
401407Weeks :PtrTo (int64 (2 )),
402408}
@@ -409,19 +415,33 @@ func TestAccTemplateResourceEnterprise(t *testing.T) {
409415{
410416Config :cfg1 .String (t ),
411417Check :resource .ComposeAggregateTestCheckFunc (
412- resource .TestCheckResourceAttr ("coderd_template.test" ,"acl.groups.#" ,"1 " ),
418+ resource .TestCheckResourceAttr ("coderd_template.test" ,"acl.groups.#" ,"2 " ),
413419resource .TestMatchTypeSetElemNestedAttrs ("coderd_template.test" ,"acl.groups.*" ,map [string ]* regexp.Regexp {
414- "id" :regexp .MustCompile (".+" ),
420+ "id" :regexp .MustCompile (firstUser . OrganizationIDs [ 0 ]. String () ),
415421"role" :regexp .MustCompile ("^use$" ),
416422}),
423+ resource .TestMatchTypeSetElemNestedAttrs ("coderd_template.test" ,"acl.groups.*" ,map [string ]* regexp.Regexp {
424+ "id" :regexp .MustCompile (group .ID .String ()),
425+ "role" :regexp .MustCompile ("^admin$" ),
426+ }),
427+ resource .TestCheckResourceAttr ("coderd_template.test" ,"acl.users.#" ,"1" ),
417428resource .TestMatchTypeSetElemNestedAttrs ("coderd_template.test" ,"acl.users.*" ,map [string ]* regexp.Regexp {
418- "id" :regexp .MustCompile (".+" ),
429+ "id" :regexp .MustCompile (firstUser . ID . String () ),
419430"role" :regexp .MustCompile ("^admin$" ),
420431}),
421432),
422433},
423434{
424435Config :cfg2 .String (t ),
436+ Check :resource .ComposeAggregateTestCheckFunc (
437+ resource .TestMatchTypeSetElemNestedAttrs ("coderd_template.test" ,"acl.users.*" ,map [string ]* regexp.Regexp {
438+ "id" :regexp .MustCompile (firstUser .ID .String ()),
439+ "role" :regexp .MustCompile ("^admin$" ),
440+ }),
441+ ),
442+ },
443+ {
444+ Config :cfg3 .String (t ),
425445Check :resource .ComposeAggregateTestCheckFunc (
426446resource .TestCheckNoResourceAttr ("coderd_template.test" ,"acl" ),
427447func (s * terraform.State )error {
@@ -439,7 +459,7 @@ func TestAccTemplateResourceEnterprise(t *testing.T) {
439459if len (acl .Groups )!= 1 {
440460return fmt .Errorf ("expected 1 group ACL, got %d" ,len (acl .Groups ))
441461}
442- if acl .Groups [0 ].Role != "use " && acl .Groups [0 ].ID != firstUser . OrganizationIDs [ 0 ] {
462+ if acl .Groups [0 ].Role != "admin " && acl .Groups [0 ].ID != group . ID {
443463return fmt .Errorf ("expected group ACL to be 'use' for %s, got %s" ,firstUser .OrganizationIDs [0 ].String (),acl .Groups [0 ].Role )
444464}
445465if len (acl .Users )!= 1 {
@@ -453,7 +473,7 @@ func TestAccTemplateResourceEnterprise(t *testing.T) {
453473),
454474},
455475{
456- Config :cfg3 .String (t ),
476+ Config :cfg4 .String (t ),
457477Check :resource .ComposeAggregateTestCheckFunc (
458478resource .TestCheckResourceAttr ("coderd_template.test" ,"allow_user_auto_start" ,"false" ),
459479resource .TestCheckResourceAttr ("coderd_template.test" ,"auto_stop_requirement.days_of_week.#" ,"2" ),