Skip to content

Commit 7cf4bc6

Browse files
committed
Introduce testAcc setting for repo visibility
This enables GHEC EMU to run tests without having to manually skip everything public Signed-off-by: Timo Sand <timo.sand@f-secure.com>
1 parent 9602a9e commit 7cf4bc6

3 files changed

Lines changed: 105 additions & 165 deletions

File tree

github/acc_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ type testAccConfig struct {
7777

7878
// Test options
7979
testAdvancedSecurity bool
80+
81+
// Test repository configuration
82+
testRepositoryVisibility string
8083
}
8184

8285
var testAccConf *testAccConfig
@@ -131,6 +134,7 @@ func TestMain(m *testing.M) {
131134
testExternalUserToken: os.Getenv("GH_TEST_EXTERNAL_USER_TOKEN"),
132135
testExternalUser2: os.Getenv("GH_TEST_EXTERNAL_USER2"),
133136
testAdvancedSecurity: os.Getenv("GH_TEST_ADVANCED_SECURITY") == "true",
137+
testRepositoryVisibility: "public",
134138
enterpriseIsEMU: authMode == enterprise && os.Getenv("GH_TEST_ENTERPRISE_IS_EMU") == "true",
135139
}
136140

@@ -167,6 +171,10 @@ func TestMain(m *testing.M) {
167171
if err == nil {
168172
config.testEnterpriseEMUGroupId = i
169173
}
174+
175+
if config.enterpriseIsEMU {
176+
config.testRepositoryVisibility = "private"
177+
}
170178
}
171179

172180
i, err := strconv.Atoi(os.Getenv("GH_TEST_ORG_APP_INSTALLATION_ID"))

github/resource_github_repository_ruleset_test.go

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,6 @@ import (
1212
)
1313

1414
func TestAccGithubRepositoryRuleset(t *testing.T) {
15-
baseRepoVisibility := "public"
16-
17-
if testAccConf.authMode == enterprise {
18-
// This enables repos to be created even in GHEC EMU
19-
baseRepoVisibility = "private"
20-
}
21-
2215
t.Run("create_branch_ruleset", func(t *testing.T) {
2316
randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)
2417
repoName := fmt.Sprintf("%srepo-ruleset-%s", testResourcePrefix, randomID)
@@ -120,7 +113,7 @@ resource "github_repository_ruleset" "test" {
120113
non_fast_forward = true
121114
}
122115
}
123-
`, repoName, baseRepoVisibility)
116+
`, repoName, testAccConf.testRepositoryVisibility)
124117

125118
resource.Test(t, resource.TestCase{
126119
PreCheck: func() { skipUnauthenticated(t) },
@@ -189,7 +182,7 @@ resource "github_repository_ruleset" "test" {
189182
}
190183
}
191184
}
192-
`, repoName, baseRepoVisibility)
185+
`, repoName, testAccConf.testRepositoryVisibility)
193186

194187
resource.Test(t, resource.TestCase{
195188
PreCheck: func() { skipUnauthenticated(t) },
@@ -308,13 +301,13 @@ resource "github_repository_ruleset" "test" {
308301
ProviderFactories: providerFactories,
309302
Steps: []resource.TestStep{
310303
{
311-
Config: fmt.Sprintf(config, repoName, randomID, baseRepoVisibility, name),
304+
Config: fmt.Sprintf(config, repoName, randomID, testAccConf.testRepositoryVisibility, name),
312305
Check: resource.ComposeTestCheckFunc(
313306
resource.TestCheckResourceAttr("github_repository_ruleset.test", "name", name),
314307
),
315308
},
316309
{
317-
Config: fmt.Sprintf(config, repoName, randomID, baseRepoVisibility, nameUpdated),
310+
Config: fmt.Sprintf(config, repoName, randomID, testAccConf.testRepositoryVisibility, nameUpdated),
318311
Check: resource.ComposeTestCheckFunc(
319312
resource.TestCheckResourceAttr("github_repository_ruleset.test", "name", nameUpdated),
320313
),
@@ -367,9 +360,9 @@ resource "github_repository_ruleset" "test" {
367360
}
368361
}
369362
`
370-
config := fmt.Sprintf(baseConfig, repoName, baseRepoVisibility, bypassActorsConfig)
363+
config := fmt.Sprintf(baseConfig, repoName, testAccConf.testRepositoryVisibility, bypassActorsConfig)
371364

372-
configUpdated := fmt.Sprintf(baseConfig, repoName, baseRepoVisibility, "")
365+
configUpdated := fmt.Sprintf(baseConfig, repoName, testAccConf.testRepositoryVisibility, "")
373366
resource.Test(t, resource.TestCase{
374367
PreCheck: func() { skipUnauthenticated(t) },
375368
ProviderFactories: providerFactories,
@@ -435,13 +428,13 @@ resource "github_repository_ruleset" "test" {
435428
ProviderFactories: providerFactories,
436429
Steps: []resource.TestStep{
437430
{
438-
Config: fmt.Sprintf(config, repoName, randomID, baseRepoVisibility, bypassMode),
431+
Config: fmt.Sprintf(config, repoName, randomID, testAccConf.testRepositoryVisibility, bypassMode),
439432
Check: resource.ComposeTestCheckFunc(
440433
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.0.bypass_mode", bypassMode),
441434
),
442435
},
443436
{
444-
Config: fmt.Sprintf(config, repoName, randomID, baseRepoVisibility, bypassModeUpdated),
437+
Config: fmt.Sprintf(config, repoName, randomID, testAccConf.testRepositoryVisibility, bypassModeUpdated),
445438
Check: resource.ComposeTestCheckFunc(
446439
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.0.bypass_mode", bypassModeUpdated),
447440
),
@@ -486,7 +479,7 @@ resource "github_repository_ruleset" "test" {
486479
creation = true
487480
}
488481
}
489-
`, repoName, randomID, baseRepoVisibility)
482+
`, repoName, randomID, testAccConf.testRepositoryVisibility)
490483

491484
resource.Test(t, resource.TestCase{
492485
PreCheck: func() { skipUnauthenticated(t) },
@@ -508,13 +501,6 @@ resource "github_repository_ruleset" "test" {
508501
}
509502

510503
func TestAccGithubRepositoryRulesetArchived(t *testing.T) {
511-
baseRepoVisibility := "public"
512-
513-
if testAccConf.authMode == enterprise {
514-
// This enables repos to be created even in GHEC EMU
515-
baseRepoVisibility = "private"
516-
}
517-
518504
t.Run("skips update and delete on archived repository", func(t *testing.T) {
519505
randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)
520506
repoName := fmt.Sprintf("%srepo-ruleset-arch-%s", testResourcePrefix, randomID)
@@ -543,9 +529,9 @@ func TestAccGithubRepositoryRulesetArchived(t *testing.T) {
543529
PreCheck: func() { skipUnauthenticated(t) },
544530
ProviderFactories: providerFactories,
545531
Steps: []resource.TestStep{
546-
{Config: fmt.Sprintf(config, repoName, archivedBefore, baseRepoVisibility, enforcementBefore)},
547-
{Config: fmt.Sprintf(config, repoName, archivedAfter, baseRepoVisibility, enforcementBefore)},
548-
{Config: fmt.Sprintf(config, repoName, archivedAfter, baseRepoVisibility, enforcementAfter)},
532+
{Config: fmt.Sprintf(config, repoName, archivedBefore, testAccConf.testRepositoryVisibility, enforcementBefore)},
533+
{Config: fmt.Sprintf(config, repoName, archivedAfter, testAccConf.testRepositoryVisibility, enforcementBefore)},
534+
{Config: fmt.Sprintf(config, repoName, archivedAfter, testAccConf.testRepositoryVisibility, enforcementAfter)},
549535
},
550536
})
551537
})
@@ -577,10 +563,10 @@ resource "github_repository_ruleset" "test" {
577563
ProviderFactories: providerFactories,
578564
Steps: []resource.TestStep{
579565
{
580-
Config: fmt.Sprintf(repoConfig, repoName, false, baseRepoVisibility, ""),
566+
Config: fmt.Sprintf(repoConfig, repoName, false, testAccConf.testRepositoryVisibility, ""),
581567
},
582568
{
583-
Config: fmt.Sprintf(repoConfig, repoName, true, baseRepoVisibility, rulesetConfig),
569+
Config: fmt.Sprintf(repoConfig, repoName, true, testAccConf.testRepositoryVisibility, rulesetConfig),
584570
ExpectError: regexp.MustCompile("cannot create ruleset on archived repository"),
585571
},
586572
},
@@ -764,12 +750,6 @@ func TestAccGithubRepositoryRuleset_requiredReviewers(t *testing.T) {
764750
repoName := fmt.Sprintf("%srepo-ruleset-req-rev-%s", testResourcePrefix, randomID)
765751
teamName := fmt.Sprintf("%steam-req-rev-%s", testResourcePrefix, randomID)
766752
rulesetName := fmt.Sprintf("%s-ruleset-req-rev-%s", testResourcePrefix, randomID)
767-
baseRepoVisibility := "public"
768-
769-
if testAccConf.authMode == enterprise {
770-
// This enables repos to be created even in GHEC EMU
771-
baseRepoVisibility = "private"
772-
}
773753

774754
config := fmt.Sprintf(`
775755
resource "github_repository" "test" {
@@ -822,7 +802,7 @@ resource "github_repository_ruleset" "test" {
822802
823803
depends_on = [github_team_repository.test]
824804
}
825-
`, repoName, baseRepoVisibility, teamName, rulesetName)
805+
`, repoName, testAccConf.testRepositoryVisibility, teamName, rulesetName)
826806

827807
// Updated config: change minimum_approvals from 1 to 2
828808
configUpdated := fmt.Sprintf(`
@@ -876,7 +856,7 @@ resource "github_repository_ruleset" "test" {
876856
877857
depends_on = [github_team_repository.test]
878858
}
879-
`, repoName, baseRepoVisibility, teamName, rulesetName)
859+
`, repoName, testAccConf.testRepositoryVisibility, teamName, rulesetName)
880860

881861
resource.Test(t, resource.TestCase{
882862
PreCheck: func() { skipUnlessHasOrgs(t) },

0 commit comments

Comments
 (0)