go-sdk/gitea/repo_commit_test.go
Gusted f3ebdb8afe
Some checks failed
continuous-integration/drone/push Build is failing
Add function to get commit diff/patch (#589)
- Adds function the gets a commit's diff or patch.
- Ref: https://github.com/go-gitea/gitea/pull/17095

Reviewed-on: #589
Reviewed-by: John Olheiser <john.olheiser@gmail.com>
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: Gusted <williamzijl7@hotmail.com>
Co-committed-by: Gusted <williamzijl7@hotmail.com>
2022-05-15 06:16:26 +08:00

61 lines
2.3 KiB
Go

// Copyright 2020 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package gitea
import (
"encoding/base64"
"log"
"testing"
"github.com/stretchr/testify/assert"
)
func TestListRepoCommits(t *testing.T) {
log.Println("== TestListRepoCommits ==")
c := newTestClient()
repo, err := createTestRepo(t, "ListRepoCommits", c)
assert.NoError(t, err)
l, _, err := c.ListRepoCommits(repo.Owner.UserName, repo.Name, ListCommitOptions{})
assert.NoError(t, err)
assert.Len(t, l, 1)
assert.EqualValues(t, "Initial commit\n", l[0].RepoCommit.Message)
assert.EqualValues(t, "gpg.error.not_signed_commit", l[0].RepoCommit.Verification.Reason)
assert.EqualValues(t, 100, l[0].Stats.Additions)
}
func TestGetCommitDiffOrPatch(t *testing.T) {
log.Println("== TestGetCommitDiffOrPatch ==")
c := newTestClient()
repo, err := createTestRepo(t, "TestGetCommitDiffOrPatch", c)
assert.NoError(t, err)
// Add a new simple small commit to the repository.
fileResponse, _, err := c.CreateFile(repo.Owner.UserName, repo.Name, "NOT_A_LICENSE", CreateFileOptions{
Content: base64.StdEncoding.EncodeToString([]byte("But is it?\n")),
FileOptions: FileOptions{
Message: "Ensure people know it's not a license!",
Committer: Identity{
Name: "Sup3rCookie",
Email: "Sup3rCookie@example.com",
},
},
})
assert.NoError(t, err)
// Test the diff output.
diffOutput, _, err := c.GetCommitDiff(repo.Owner.UserName, repo.Name, fileResponse.Commit.SHA)
assert.NoError(t, err)
assert.EqualValues(t, "diff --git a/NOT_A_LICENSE b/NOT_A_LICENSE\nnew file mode 100644\nindex 0000000..f27a20a\n--- /dev/null\n+++ b/NOT_A_LICENSE\n@@ -0,0 +1 @@\n+But is it?\n", string(diffOutput))
// Test the patch output.
patchOutput, _, err := c.GetCommitPatch(repo.Owner.UserName, repo.Name, fileResponse.Commit.SHA)
assert.NoError(t, err)
// Use contains, because we cannot include the first part, because of dates + non-static CommitID..
assert.Contains(t, string(patchOutput), "Subject: [PATCH] Ensure people know it's not a license!\n\n---\n NOT_A_LICENSE | 1 +\n 1 file changed, 1 insertion(+)\n create mode 100644 NOT_A_LICENSE\n\ndiff --git a/NOT_A_LICENSE b/NOT_A_LICENSE\nnew file mode 100644\nindex 0000000..f27a20a\n--- /dev/null\n+++ b/NOT_A_LICENSE\n@@ -0,0 +1 @@\n+But is it?\n")
}