Skip to content

Commit 5e3bda9

Browse files
committed
Refactor tests to adhere to convention
Signed-off-by: Timo Sand <[email protected]>
1 parent 10084c9 commit 5e3bda9

1 file changed

Lines changed: 159 additions & 201 deletions

File tree

github/resource_github_organization_ruleset_test.go

Lines changed: 159 additions & 201 deletions
Original file line numberDiff line numberDiff line change
@@ -809,6 +809,165 @@ resource "github_organization_ruleset" "test" {
809809
})
810810
})
811811
})
812+
813+
t.Run("updates_required_reviewers", func(t *testing.T) {
814+
randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)
815+
teamName := fmt.Sprintf("%steam-req-rev-%s", testResourcePrefix, randomID)
816+
rulesetName := fmt.Sprintf("%s-ruleset-req-rev-%s", testResourcePrefix, randomID)
817+
818+
config := `
819+
resource "github_team" "test" {
820+
name = "%s"
821+
}
822+
823+
resource "github_organization_ruleset" "test" {
824+
name = "%s"
825+
target = "branch"
826+
enforcement = "active"
827+
828+
conditions {
829+
repository_name {
830+
include = ["~ALL"]
831+
exclude = []
832+
}
833+
834+
ref_name {
835+
include = ["~ALL"]
836+
exclude = []
837+
}
838+
}
839+
840+
rules {
841+
pull_request {
842+
allowed_merge_methods = ["merge", "squash"]
843+
required_approving_review_count = 1
844+
845+
required_reviewers {
846+
reviewer {
847+
id = github_team.test.id
848+
type = "Team"
849+
}
850+
file_patterns = ["*.go", "src/**/*.ts"]
851+
minimum_approvals = %d
852+
}
853+
}
854+
}
855+
}
856+
`
857+
858+
resource.Test(t, resource.TestCase{
859+
PreCheck: func() { skipUnlessHasPaidOrgs(t) },
860+
ProviderFactories: providerFactories,
861+
Steps: []resource.TestStep{
862+
{
863+
Config: fmt.Sprintf(config, teamName, rulesetName, 1),
864+
Check: resource.ComposeTestCheckFunc(
865+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "name", rulesetName),
866+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "target", "branch"),
867+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "enforcement", "active"),
868+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.#", "1"),
869+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.minimum_approvals", "1"),
870+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.#", "2"),
871+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.0", "*.go"),
872+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.1", "src/**/*.ts"),
873+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.reviewer.0.type", "Team"),
874+
),
875+
},
876+
{
877+
Config: fmt.Sprintf(config, teamName, rulesetName, 2),
878+
Check: resource.ComposeTestCheckFunc(
879+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.minimum_approvals", "2"),
880+
),
881+
},
882+
{
883+
ResourceName: "github_organization_ruleset.test",
884+
ImportState: true,
885+
ImportStateVerify: true,
886+
ImportStateVerifyIgnore: []string{"etag"},
887+
},
888+
},
889+
})
890+
})
891+
t.Run("creates_rule_with_multiple_required_reviewers", func(t *testing.T) {
892+
randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)
893+
teamName1 := fmt.Sprintf("%steam-req-rev-1-%s", testResourcePrefix, randomID)
894+
teamName2 := fmt.Sprintf("%steam-req-rev-2-%s", testResourcePrefix, randomID)
895+
rulesetName := fmt.Sprintf("%s-ruleset-multi-rev-%s", testResourcePrefix, randomID)
896+
897+
config := fmt.Sprintf(`
898+
resource "github_team" "test1" {
899+
name = "%s"
900+
}
901+
902+
resource "github_team" "test2" {
903+
name = "%s"
904+
}
905+
906+
resource "github_organization_ruleset" "test" {
907+
name = "%s"
908+
target = "branch"
909+
enforcement = "active"
910+
911+
conditions {
912+
repository_name {
913+
include = ["~ALL"]
914+
exclude = []
915+
}
916+
917+
ref_name {
918+
include = ["~ALL"]
919+
exclude = []
920+
}
921+
}
922+
923+
rules {
924+
pull_request {
925+
allowed_merge_methods = ["merge", "squash"]
926+
required_approving_review_count = 1
927+
928+
required_reviewers {
929+
reviewer {
930+
id = github_team.test1.id
931+
type = "Team"
932+
}
933+
file_patterns = ["*.go"]
934+
minimum_approvals = 1
935+
}
936+
937+
required_reviewers {
938+
reviewer {
939+
id = github_team.test2.id
940+
type = "Team"
941+
}
942+
file_patterns = ["*.md", "docs/**/*"]
943+
minimum_approvals = 1
944+
}
945+
}
946+
}
947+
}
948+
`, teamName1, teamName2, rulesetName)
949+
950+
resource.Test(t, resource.TestCase{
951+
PreCheck: func() { skipUnlessHasPaidOrgs(t) },
952+
ProviderFactories: providerFactories,
953+
Steps: []resource.TestStep{
954+
{
955+
Config: config,
956+
Check: resource.ComposeTestCheckFunc(
957+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "name", rulesetName),
958+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "target", "branch"),
959+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "enforcement", "active"),
960+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.#", "2"),
961+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.minimum_approvals", "1"),
962+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.#", "1"),
963+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.0", "*.go"),
964+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.1.minimum_approvals", "1"),
965+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.1.file_patterns.#", "2"),
966+
),
967+
},
968+
},
969+
})
970+
})
812971
}
813972

814973
func TestOrganizationPushRulesetSupport(t *testing.T) {
@@ -934,204 +1093,3 @@ func TestOrganizationPushRulesetSupport(t *testing.T) {
9341093
t.Errorf("Expected 4 restricted file extensions, got %d", len(restrictedExts))
9351094
}
9361095
}
937-
938-
func TestAccGithubOrganizationRuleset_requiredReviewers(t *testing.T) {
939-
randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)
940-
teamName := fmt.Sprintf("%steam-req-rev-%s", testResourcePrefix, randomID)
941-
rulesetName := fmt.Sprintf("%s-ruleset-req-rev-%s", testResourcePrefix, randomID)
942-
943-
config := fmt.Sprintf(`
944-
resource "github_team" "test" {
945-
name = "%s"
946-
}
947-
948-
resource "github_organization_ruleset" "test" {
949-
name = "%s"
950-
target = "branch"
951-
enforcement = "active"
952-
953-
conditions {
954-
repository_name {
955-
include = ["~ALL"]
956-
exclude = []
957-
}
958-
959-
ref_name {
960-
include = ["~ALL"]
961-
exclude = []
962-
}
963-
}
964-
965-
rules {
966-
pull_request {
967-
allowed_merge_methods = ["merge", "squash"]
968-
required_approving_review_count = 1
969-
970-
required_reviewers {
971-
reviewer {
972-
id = github_team.test.id
973-
type = "Team"
974-
}
975-
file_patterns = ["*.go", "src/**/*.ts"]
976-
minimum_approvals = 1
977-
}
978-
}
979-
}
980-
}
981-
`, teamName, rulesetName)
982-
983-
// Updated config: change minimum_approvals from 1 to 2
984-
configUpdated := fmt.Sprintf(`
985-
resource "github_team" "test" {
986-
name = "%s"
987-
}
988-
989-
resource "github_organization_ruleset" "test" {
990-
name = "%s"
991-
target = "branch"
992-
enforcement = "active"
993-
994-
conditions {
995-
repository_name {
996-
include = ["~ALL"]
997-
exclude = []
998-
}
999-
1000-
ref_name {
1001-
include = ["~ALL"]
1002-
exclude = []
1003-
}
1004-
}
1005-
1006-
rules {
1007-
pull_request {
1008-
allowed_merge_methods = ["merge", "squash"]
1009-
required_approving_review_count = 1
1010-
1011-
required_reviewers {
1012-
reviewer {
1013-
id = github_team.test.id
1014-
type = "Team"
1015-
}
1016-
file_patterns = ["*.go", "src/**/*.ts"]
1017-
minimum_approvals = 2
1018-
}
1019-
}
1020-
}
1021-
}
1022-
`, teamName, rulesetName)
1023-
1024-
resource.Test(t, resource.TestCase{
1025-
PreCheck: func() { skipUnlessHasPaidOrgs(t) },
1026-
ProviderFactories: providerFactories,
1027-
Steps: []resource.TestStep{
1028-
{
1029-
Config: config,
1030-
Check: resource.ComposeTestCheckFunc(
1031-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "name", rulesetName),
1032-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "target", "branch"),
1033-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "enforcement", "active"),
1034-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.#", "1"),
1035-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.minimum_approvals", "1"),
1036-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.#", "2"),
1037-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.0", "*.go"),
1038-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.1", "src/**/*.ts"),
1039-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.reviewer.0.type", "Team"),
1040-
),
1041-
},
1042-
{
1043-
Config: configUpdated,
1044-
Check: resource.ComposeTestCheckFunc(
1045-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.minimum_approvals", "2"),
1046-
),
1047-
},
1048-
{
1049-
ResourceName: "github_organization_ruleset.test",
1050-
ImportState: true,
1051-
ImportStateVerify: true,
1052-
ImportStateVerifyIgnore: []string{"etag"},
1053-
},
1054-
},
1055-
})
1056-
}
1057-
1058-
func TestAccGithubOrganizationRuleset_requiredReviewersMultiple(t *testing.T) {
1059-
randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)
1060-
teamName1 := fmt.Sprintf("%steam-req-rev-1-%s", testResourcePrefix, randomID)
1061-
teamName2 := fmt.Sprintf("%steam-req-rev-2-%s", testResourcePrefix, randomID)
1062-
rulesetName := fmt.Sprintf("%s-ruleset-multi-rev-%s", testResourcePrefix, randomID)
1063-
1064-
config := fmt.Sprintf(`
1065-
resource "github_team" "test1" {
1066-
name = "%s"
1067-
}
1068-
1069-
resource "github_team" "test2" {
1070-
name = "%s"
1071-
}
1072-
1073-
resource "github_organization_ruleset" "test" {
1074-
name = "%s"
1075-
target = "branch"
1076-
enforcement = "active"
1077-
1078-
conditions {
1079-
repository_name {
1080-
include = ["~ALL"]
1081-
exclude = []
1082-
}
1083-
1084-
ref_name {
1085-
include = ["~ALL"]
1086-
exclude = []
1087-
}
1088-
}
1089-
1090-
rules {
1091-
pull_request {
1092-
allowed_merge_methods = ["merge", "squash"]
1093-
required_approving_review_count = 1
1094-
1095-
required_reviewers {
1096-
reviewer {
1097-
id = github_team.test1.id
1098-
type = "Team"
1099-
}
1100-
file_patterns = ["*.go"]
1101-
minimum_approvals = 1
1102-
}
1103-
1104-
required_reviewers {
1105-
reviewer {
1106-
id = github_team.test2.id
1107-
type = "Team"
1108-
}
1109-
file_patterns = ["*.md", "docs/**/*"]
1110-
minimum_approvals = 1
1111-
}
1112-
}
1113-
}
1114-
}
1115-
`, teamName1, teamName2, rulesetName)
1116-
1117-
resource.Test(t, resource.TestCase{
1118-
PreCheck: func() { skipUnlessHasPaidOrgs(t) },
1119-
ProviderFactories: providerFactories,
1120-
Steps: []resource.TestStep{
1121-
{
1122-
Config: config,
1123-
Check: resource.ComposeTestCheckFunc(
1124-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "name", rulesetName),
1125-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "target", "branch"),
1126-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "enforcement", "active"),
1127-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.#", "2"),
1128-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.minimum_approvals", "1"),
1129-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.#", "1"),
1130-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.0.file_patterns.0", "*.go"),
1131-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.1.minimum_approvals", "1"),
1132-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.required_reviewers.1.file_patterns.#", "2"),
1133-
),
1134-
},
1135-
},
1136-
})
1137-
}

0 commit comments

Comments
 (0)