diff options
| -rw-r--r-- | pkg/vcs/git_test.go | 16 | ||||
| -rw-r--r-- | pkg/vcs/git_test_util.go | 25 |
2 files changed, 29 insertions, 12 deletions
diff --git a/pkg/vcs/git_test.go b/pkg/vcs/git_test.go index f2d761713..5050bcdc0 100644 --- a/pkg/vcs/git_test.go +++ b/pkg/vcs/git_test.go @@ -4,7 +4,6 @@ package vcs import ( - "os" "reflect" "sort" "testing" @@ -272,17 +271,10 @@ func TestObject(t *testing.T) { firstRev := []byte("First revision") secondRev := []byte("Second revision") - if err := os.WriteFile(baseDir+"/object.txt", firstRev, 0644); err != nil { - t.Fatal(err) - } - repo.Git("add", "object.txt") - repo.Git("commit", "--no-edit", "--allow-empty", "-m", "target") - - if err := os.WriteFile(baseDir+"/object.txt", secondRev, 0644); err != nil { - t.Fatal(err) - } - repo.Git("add", "object.txt") - repo.Git("commit", "--no-edit", "--allow-empty", "-m", "target") + repo.commitChangeset("first", + writeFile{"object.txt", string(firstRev)}) + repo.commitChangeset("second", + writeFile{"object.txt", string(secondRev)}) commits, err := repo.repo.LatestCommits("", time.Time{}) if err != nil { diff --git a/pkg/vcs/git_test_util.go b/pkg/vcs/git_test_util.go index 9d5ef1edc..012972abc 100644 --- a/pkg/vcs/git_test_util.go +++ b/pkg/vcs/git_test_util.go @@ -5,6 +5,7 @@ package vcs import ( "fmt" + "os" "path/filepath" "strings" "testing" @@ -77,11 +78,35 @@ func (repo *TestRepo) CommitFileChange(branch, change string) { } func (repo *TestRepo) CommitChange(description string) *Commit { + return repo.commitChangeset(description) +} + +type writeFile struct { + File string + Content string +} + +func (wf *writeFile) Apply(repo *TestRepo) error { + err := os.WriteFile(filepath.Join(repo.Dir, wf.File), []byte(wf.Content), 0644) + if err != nil { + return err + } + repo.Git("add", wf.File) + return nil +} + +func (repo *TestRepo) commitChangeset(description string, actions ...writeFile) *Commit { + for i, action := range actions { + if err := action.Apply(repo); err != nil { + repo.t.Fatalf("failed to apply action %d: %v", i, err) + } + } repo.Git("commit", "--allow-empty", "-m", description) com, err := repo.repo.Commit(HEAD) if err != nil { repo.t.Fatal(err) } + repo.t.Logf("%q's hash is %s", description, com.Hash) return com } |
