Skip to content

Commit

Permalink
chore: Run external depended tests in CI (if possible) - project_ip_a…
Browse files Browse the repository at this point in the history
…ccess_list (#1784)
  • Loading branch information
andreaangiolillo committed Dec 20, 2023
1 parent e364a67 commit 3239c88
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 24 deletions.
9 changes: 9 additions & 0 deletions .github/workflows/acceptance-tests.yml
Expand Up @@ -364,6 +364,15 @@ jobs:
MONGODB_ATLAS_BASE_URL: ${{ vars.MONGODB_ATLAS_BASE_URL }}
MONGODB_ATLAS_PROJECT_OWNER_ID: ${{ vars.MONGODB_ATLAS_PROJECT_OWNER_ID }}
MONGODB_ATLAS_TEAMS_IDS: ${{ vars.MONGODB_ATLAS_TEAMS_IDS }}
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ vars.AWS_REGION }}
AWS_SECURITY_GROUP_1: ${{ vars.AWS_SECURITY_GROUP_1 }}
AWS_SECURITY_GROUP_2: ${{ vars.AWS_SECURITY_GROUP_2 }}
AWS_VPC_CIDR_BLOCK: ${{ vars.AWS_VPC_CIDR_BLOCK }}
AWS_VPC_ID: ${{ vars.AWS_VPC_ID }}

TEST_REGEX: "^TestAccProject"
run: make testacc
serverless:
Expand Down
Expand Up @@ -94,48 +94,44 @@ func TestAccProjectRSProjectIPAccessList_SettingCIDRBlock(t *testing.T) {
}

func TestAccProjectRSProjectIPAccessList_SettingAWSSecurityGroup(t *testing.T) {
acc.SkipTestExtCred(t)
resourceName := "mongodbatlas_project_ip_access_list.test"
projectName := acctest.RandomWithPrefix("test-acc-project-aws")
vpcID := os.Getenv("AWS_VPC_ID")
vpcCIDRBlock := os.Getenv("AWS_VPC_CIDR_BLOCK")
awsAccountID := os.Getenv("AWS_ACCOUNT_ID")
awsRegion := os.Getenv("AWS_REGION")
providerName := "AWS"

projectID := os.Getenv("MONGODB_ATLAS_PROJECT_ID")
awsSGroup := "sg-0026348ec11780bd1"
orgID := os.Getenv("MONGODB_ATLAS_ORG_ID")
awsSGroup := os.Getenv("AWS_SECURITY_GROUP_1")
comment := fmt.Sprintf("TestAcc for awsSecurityGroup (%s)", awsSGroup)

updatedAWSSgroup := "sg-0026348ec11780bd2"
updatedAWSSgroup := os.Getenv("AWS_SECURITY_GROUP_2")
updatedComment := fmt.Sprintf("TestAcc for awsSecurityGroup updated (%s)", updatedAWSSgroup)

resource.Test(t, resource.TestCase{
PreCheck: func() { acc.PreCheck(t) },
PreCheck: func() { acc.PreCheckBasic(t) },
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
CheckDestroy: acc.CheckDestroyProjectIPAccessList,
Steps: []resource.TestStep{
{
Config: acc.ConfigProjectIPAccessListWithAWSSecurityGroup(projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment),
Config: acc.ConfigProjectIPAccessListWithAWSSecurityGroup(orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment),
Check: resource.ComposeTestCheckFunc(
acc.CheckProjectIPAccessListExists(resourceName),
resource.TestCheckResourceAttrSet(resourceName, "project_id"),
resource.TestCheckResourceAttrSet(resourceName, "aws_security_group"),
resource.TestCheckResourceAttrSet(resourceName, "comment"),

resource.TestCheckResourceAttr(resourceName, "project_id", projectID),
resource.TestCheckResourceAttr(resourceName, "aws_security_group", awsSGroup),
resource.TestCheckResourceAttr(resourceName, "comment", comment),
),
},
{
Config: acc.ConfigProjectIPAccessListWithAWSSecurityGroup(projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, updatedAWSSgroup, updatedComment),
Config: acc.ConfigProjectIPAccessListWithAWSSecurityGroup(orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, updatedAWSSgroup, updatedComment),
Check: resource.ComposeTestCheckFunc(
acc.CheckProjectIPAccessListExists(resourceName),
resource.TestCheckResourceAttrSet(resourceName, "project_id"),
resource.TestCheckResourceAttrSet(resourceName, "aws_security_group"),
resource.TestCheckResourceAttrSet(resourceName, "comment"),

resource.TestCheckResourceAttr(resourceName, "project_id", projectID),
resource.TestCheckResourceAttr(resourceName, "aws_security_group", updatedAWSSgroup),
resource.TestCheckResourceAttr(resourceName, "comment", updatedComment),
),
Expand Down
31 changes: 18 additions & 13 deletions internal/testutil/acc/project_ip_acces_list.go
Expand Up @@ -82,33 +82,38 @@ func ConfigProjectIPAccessListWithCIDRBlock(orgID, projectName, cidrBlock, comme
`, orgID, projectName, cidrBlock, comment)
}

func ConfigProjectIPAccessListWithAWSSecurityGroup(projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment string) string {
func ConfigProjectIPAccessListWithAWSSecurityGroup(orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment string) string {
return fmt.Sprintf(`
resource "mongodbatlas_project" "my_project" {
name = %[2]q
org_id = %[1]q
}
resource "mongodbatlas_network_container" "test" {
project_id = "%[1]s"
project_id = mongodbatlas_project.my_project.id
atlas_cidr_block = "192.168.208.0/21"
provider_name = "%[2]s"
region_name = "%[6]s"
provider_name = "%[3]s"
region_name = "%[7]s"
}
resource "mongodbatlas_network_peering" "test" {
accepter_region_name = "us-east-1"
project_id = "%[1]s"
project_id = mongodbatlas_project.my_project.id
container_id = mongodbatlas_network_container.test.container_id
provider_name = "%[2]s"
route_table_cidr_block = "%[5]s"
vpc_id = "%[3]s"
aws_account_id = "%[4]s"
provider_name = "%[3]s"
route_table_cidr_block = "%[6]s"
vpc_id = "%[4]s"
aws_account_id = "%[5]s"
}
resource "mongodbatlas_project_ip_access_list" "test" {
project_id = "%[1]s"
aws_security_group = "%[7]s"
comment = "%[8]s"
project_id = mongodbatlas_project.my_project.id
aws_security_group = "%[8]s"
comment = "%[9]s"
depends_on = ["mongodbatlas_network_peering.test"]
}
`, projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment)
`, orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment)
}

func ConfigProjectIPAccessListWithMultiple(projectName, orgID string, accessList []map[string]string, isUpdate bool) string {
Expand Down

0 comments on commit 3239c88

Please sign in to comment.