Skip to content

Commit 12bbfa7

Browse files
author
Cristina Sánchez Sánchez
committed
Added active user to test
1 parent e011813 commit 12bbfa7

File tree

1 file changed

+58
-20
lines changed

1 file changed

+58
-20
lines changed

internal/service/clouduserprojectassignment/resource_test.go

Lines changed: 58 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import (
1212
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc"
1313
)
1414

15-
var resourceName = "mongodbatlas_cloud_user_project_assignment.test"
15+
var resourceNamePending = "mongodbatlas_cloud_user_project_assignment.test_pending"
16+
var resourceNameActive = "mongodbatlas_cloud_user_project_assignment.test_active"
1617

1718
func TestAccCloudUserProjectAssignmentRS_basic(t *testing.T) {
1819
resource.ParallelTest(t, *basicTestCase(t))
@@ -22,43 +23,68 @@ func basicTestCase(t *testing.T) *resource.TestCase {
2223
t.Helper()
2324

2425
orgID := os.Getenv("MONGODB_ATLAS_ORG_ID")
25-
username := acc.RandomEmail()
26+
activeUsername := os.Getenv("MONGODB_ATLAS_USERNAME_2")
27+
pendingUsername := acc.RandomEmail()
2628
projectName := acc.RandomName()
2729
roles := []string{"GROUP_OWNER", "GROUP_CLUSTER_MANAGER"}
2830
updatedRoles := []string{"GROUP_OWNER", "GROUP_SEARCH_INDEX_EDITOR", "GROUP_READ_ONLY"}
2931

3032
return &resource.TestCase{
31-
PreCheck: func() { acc.PreCheckBasic(t) },
33+
PreCheck: func() { acc.PreCheckBasic(t); acc.PreCheckAtlasUsernames(t) },
3234
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
3335
CheckDestroy: checkDestroy,
3436
Steps: []resource.TestStep{
3537
{
36-
Config: configBasic(orgID, username, projectName, roles),
37-
Check: checks(username, projectName, roles),
38+
Config: configBasic(orgID, pendingUsername, activeUsername, projectName, roles),
39+
Check: checks(pendingUsername, activeUsername, projectName, roles),
3840
},
3941
{
40-
Config: configBasic(orgID, username, projectName, updatedRoles),
41-
Check: checks(username, projectName, updatedRoles),
42+
Config: configBasic(orgID, pendingUsername, activeUsername, projectName, updatedRoles),
43+
Check: checks(pendingUsername, activeUsername, projectName, updatedRoles),
4244
},
4345
{
44-
ResourceName: resourceName,
46+
ResourceName: resourceNamePending,
4547
ImportState: true,
4648
ImportStateVerify: true,
4749
ImportStateVerifyIdentifierAttribute: "user_id",
4850
ImportStateIdFunc: func(s *terraform.State) (string, error) {
49-
attrs := s.RootModule().Resources[resourceName].Primary.Attributes
51+
attrs := s.RootModule().Resources[resourceNamePending].Primary.Attributes
5052
projectID := attrs["project_id"]
5153
userID := attrs["user_id"]
5254
return projectID + "/" + userID, nil
5355
},
5456
},
5557
{
56-
ResourceName: resourceName,
58+
ResourceName: resourceNamePending,
5759
ImportState: true,
5860
ImportStateVerify: true,
5961
ImportStateVerifyIdentifierAttribute: "user_id",
6062
ImportStateIdFunc: func(s *terraform.State) (string, error) {
61-
attrs := s.RootModule().Resources[resourceName].Primary.Attributes
63+
attrs := s.RootModule().Resources[resourceNamePending].Primary.Attributes
64+
projectID := attrs["project_id"]
65+
username := attrs["username"]
66+
return projectID + "/" + username, nil
67+
},
68+
},
69+
{
70+
ResourceName: resourceNameActive,
71+
ImportState: true,
72+
ImportStateVerify: true,
73+
ImportStateVerifyIdentifierAttribute: "user_id",
74+
ImportStateIdFunc: func(s *terraform.State) (string, error) {
75+
attrs := s.RootModule().Resources[resourceNameActive].Primary.Attributes
76+
projectID := attrs["project_id"]
77+
userID := attrs["user_id"]
78+
return projectID + "/" + userID, nil
79+
},
80+
},
81+
{
82+
ResourceName: resourceNameActive,
83+
ImportState: true,
84+
ImportStateVerify: true,
85+
ImportStateVerifyIdentifierAttribute: "user_id",
86+
ImportStateIdFunc: func(s *terraform.State) (string, error) {
87+
attrs := s.RootModule().Resources[resourceNameActive].Primary.Attributes
6288
projectID := attrs["project_id"]
6389
username := attrs["username"]
6490
return projectID + "/" + username, nil
@@ -68,31 +94,43 @@ func basicTestCase(t *testing.T) *resource.TestCase {
6894
}
6995
}
7096

71-
func configBasic(orgID, username, projectName string, roles []string) string {
97+
func configBasic(orgID, pendingUsername, activeUsername, projectName string, roles []string) string {
7298
rolesStr := `"` + strings.Join(roles, `", "`) + `"`
7399
return fmt.Sprintf(`
74100
resource "mongodbatlas_project" "test" {
75101
name = %[1]q
76102
org_id = %[2]q
77103
}
78104
79-
resource "mongodbatlas_cloud_user_project_assignment" "test" {
105+
resource "mongodbatlas_cloud_user_project_assignment" "test_pending" {
80106
username = %[3]q
81107
project_id = mongodbatlas_project.test.id
82-
roles = [%[4]s]
108+
roles = [%[5]s]
109+
}
110+
111+
resource "mongodbatlas_cloud_user_project_assignment" "test_active" {
112+
username = %[4]q
113+
project_id = mongodbatlas_project.test.id
114+
roles = [%[5]s]
83115
}`,
84-
projectName, orgID, username, rolesStr)
116+
projectName, orgID, pendingUsername, activeUsername, rolesStr)
85117
}
86118

87-
func checks(username, projectName string, roles []string) resource.TestCheckFunc {
119+
func checks(pendingUsername, activeUsername, projectName string, roles []string) resource.TestCheckFunc {
88120
checkFuncs := []resource.TestCheckFunc{
89-
resource.TestCheckResourceAttr(resourceName, "username", username),
90-
resource.TestCheckResourceAttrSet(resourceName, "project_id"),
91-
resource.TestCheckResourceAttr(resourceName, "roles.#", fmt.Sprintf("%d", len(roles))),
121+
resource.TestCheckResourceAttr(resourceNamePending, "username", pendingUsername),
122+
resource.TestCheckResourceAttrSet(resourceNamePending, "project_id"),
123+
resource.TestCheckResourceAttr(resourceNamePending, "roles.#", fmt.Sprintf("%d", len(roles))),
124+
resource.TestCheckResourceAttr(resourceNameActive, "username", activeUsername),
125+
resource.TestCheckResourceAttrSet(resourceNameActive, "project_id"),
126+
resource.TestCheckResourceAttr(resourceNameActive, "roles.#", fmt.Sprintf("%d", len(roles))),
92127
}
93128

94129
for _, role := range roles {
95-
checkFuncs = append(checkFuncs, resource.TestCheckTypeSetElemAttr(resourceName, "roles.*", role))
130+
checkFuncs = append(checkFuncs,
131+
resource.TestCheckTypeSetElemAttr(resourceNamePending, "roles.*", role),
132+
resource.TestCheckTypeSetElemAttr(resourceNameActive, "roles.*", role),
133+
)
96134
}
97135
return resource.ComposeAggregateTestCheckFunc(checkFuncs...)
98136
}

0 commit comments

Comments
 (0)