summaryrefslogtreecommitdiff
path: root/cherrypick_test.go
diff options
context:
space:
mode:
authorlhchavez <[email protected]>2020-02-23 08:08:30 -0800
committerGitHub <[email protected]>2020-02-23 08:08:30 -0800
commit45097a857c3df900111d49b9c07f2ad4645c1450 (patch)
tree69ce278737eff6798c18d68e06489b1ad6fda93a /cherrypick_test.go
parent21d618136f415486d95965e75af80c0e6688a0d5 (diff)
parentc1903b47fe80c7c0a3a9900d730f4dfce7f21aca (diff)
Merge pull request #429 from josharian/cherrypick-commit
cherrypick: wrap git_cherrypick_commit
Diffstat (limited to 'cherrypick_test.go')
-rw-r--r--cherrypick_test.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/cherrypick_test.go b/cherrypick_test.go
index bfa5ca8..19a9736 100644
--- a/cherrypick_test.go
+++ b/cherrypick_test.go
@@ -84,3 +84,57 @@ func TestCherrypick(t *testing.T) {
t.Fatal("Incorrect repository state: ", state)
}
}
+
+func TestCherrypickCommit(t *testing.T) {
+ t.Parallel()
+ repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
+ c1, _ := seedTestRepo(t, repo)
+ c2, _ := updateReadme(t, repo, content)
+
+ commit1, err := repo.LookupCommit(c1)
+ if err != nil {
+ t.Fatal(err)
+ }
+ commit2, err := repo.LookupCommit(c2)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ checkout(t, repo, commit1)
+
+ if got := readReadme(t, repo); got == content {
+ t.Fatalf("README = %q, want %q", got, content)
+ }
+
+ opts, err := DefaultCherrypickOptions()
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ idx, err := repo.CherrypickCommit(commit2, commit1, opts)
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer idx.Free()
+
+ // The file is only updated in the index, not in the working directory.
+ if got := readReadme(t, repo); got == content {
+ t.Errorf("README = %q, want %q", got, content)
+ }
+ if got := repo.State(); got != RepositoryStateNone {
+ t.Errorf("repo.State() = %v, want %v", got, RepositoryStateCherrypick)
+ }
+
+ if got := idx.EntryCount(); got != 1 {
+ t.Fatalf("idx.EntryCount() = %v, want %v", got, 1)
+ }
+ entry, err := idx.EntryByIndex(0)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if entry.Path != "README" {
+ t.Errorf("entry.Path = %v, want %v", entry.Path, "README")
+ }
+}