Skip to content

Commit 7676486

Browse files
authored
Improve tests for initializing a project without README. Refs #712 (#730)
1 parent b2abe9f commit 7676486

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

gitlab/resource_gitlab_project_test.go

+63
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,46 @@ func TestAccGitlabProject_initializeWithReadme(t *testing.T) {
335335
Check: resource.ComposeTestCheckFunc(
336336
testAccCheckGitlabProjectExists("gitlab_project.foo", &project),
337337
testAccCheckGitlabProjectDefaultBranch(&project, nil),
338+
func(state *terraform.State) error {
339+
client := testAccProvider.Meta().(*gitlab.Client)
340+
_, _, err := client.RepositoryFiles.GetFile(project.ID, "README.md", &gitlab.GetFileOptions{Ref: gitlab.String("main")}, nil)
341+
if err != nil {
342+
return fmt.Errorf("failed to get 'README.md' file from project: %w", err)
343+
}
344+
345+
return nil
346+
},
347+
),
348+
},
349+
},
350+
})
351+
}
352+
353+
func TestAccGitlabProject_initializeWithoutReadme(t *testing.T) {
354+
var project gitlab.Project
355+
rInt := acctest.RandInt()
356+
357+
resource.Test(t, resource.TestCase{
358+
PreCheck: func() { testAccPreCheck(t) },
359+
Providers: testAccProviders,
360+
CheckDestroy: testAccCheckGitlabProjectDestroy,
361+
Steps: []resource.TestStep{
362+
{
363+
Config: testAccGitlabProjectConfigInitializeWithoutReadme(rInt),
364+
Check: resource.ComposeTestCheckFunc(
365+
testAccCheckGitlabProjectExists("gitlab_project.foo", &project),
366+
func(s *terraform.State) error {
367+
client := testAccProvider.Meta().(*gitlab.Client)
368+
branches, _, err := client.Branches.ListBranches(project.ID, nil)
369+
if err != nil {
370+
return fmt.Errorf("failed to list branches: %w", err)
371+
}
372+
373+
if len(branches) != 0 {
374+
return fmt.Errorf("expected no branch for new project when initialized without README; found %d", len(branches))
375+
}
376+
return nil
377+
},
338378
),
339379
},
340380
},
@@ -583,6 +623,18 @@ resource "gitlab_project" "foo" {
583623
testAccCheckGitlabProjectDefaultBranch(&project, &testAccGitlabProjectExpectedAttributes{
584624
DefaultBranch: "foo",
585625
}),
626+
func(state *terraform.State) error {
627+
client := testAccProvider.Meta().(*gitlab.Client)
628+
629+
projectID := state.RootModule().Resources["gitlab_project.foo"].Primary.ID
630+
631+
_, _, err := client.RepositoryFiles.GetFile(projectID, "README.md", &gitlab.GetFileOptions{Ref: gitlab.String("foo")}, nil)
632+
if err != nil {
633+
return fmt.Errorf("failed to get 'README.md' file from project: %w", err)
634+
}
635+
636+
return nil
637+
},
586638
),
587639
},
588640
},
@@ -1093,6 +1145,17 @@ resource "gitlab_project" "foo" {
10931145
`, rInt, rInt)
10941146
}
10951147

1148+
func testAccGitlabProjectConfigInitializeWithoutReadme(rInt int) string {
1149+
return fmt.Sprintf(`
1150+
resource "gitlab_project" "foo" {
1151+
name = "foo-%d"
1152+
path = "foo.%d"
1153+
description = "Terraform acceptance tests"
1154+
initialize_with_readme = false
1155+
}
1156+
`, rInt, rInt)
1157+
}
1158+
10961159
func testAccGitlabProjectConfigImportURL(rInt int, importURL string) string {
10971160
return fmt.Sprintf(`
10981161
resource "gitlab_project" "imported" {

0 commit comments

Comments
 (0)