Fix empty commits now showing in repo overview (#7521)
* Fix empty commits now showing in repo overview * add test * make fmt
This commit is contained in:
parent
b0cd3b8ab9
commit
fe7689a6b2
7 changed files with 24 additions and 13 deletions
|
@ -68,7 +68,9 @@ func (tes Entries) GetCommitsInfo(commit *Commit, treePath string, cache LastCom
|
||||||
// get it for free during the tree traversal and it's used for listing
|
// get it for free during the tree traversal and it's used for listing
|
||||||
// pages to display information about newest commit for a given path.
|
// pages to display information about newest commit for a given path.
|
||||||
var treeCommit *Commit
|
var treeCommit *Commit
|
||||||
if rev, ok := revs[""]; ok {
|
if treePath == "" {
|
||||||
|
treeCommit = commit
|
||||||
|
} else if rev, ok := revs[""]; ok {
|
||||||
treeCommit = convertCommit(rev)
|
treeCommit = convertCommit(rev)
|
||||||
}
|
}
|
||||||
return commitsInfo, treeCommit, nil
|
return commitsInfo, treeCommit, nil
|
||||||
|
|
|
@ -28,21 +28,27 @@ func cloneRepo(url, dir, name string) (string, error) {
|
||||||
func testGetCommitsInfo(t *testing.T, repo1 *Repository) {
|
func testGetCommitsInfo(t *testing.T, repo1 *Repository) {
|
||||||
// these test case are specific to the repo1 test repo
|
// these test case are specific to the repo1 test repo
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
CommitID string
|
CommitID string
|
||||||
Path string
|
Path string
|
||||||
ExpectedIDs map[string]string
|
ExpectedIDs map[string]string
|
||||||
|
ExpectedTreeCommit string
|
||||||
}{
|
}{
|
||||||
{"8d92fc957a4d7cfd98bc375f0b7bb189a0d6c9f2", "", map[string]string{
|
{"8d92fc957a4d7cfd98bc375f0b7bb189a0d6c9f2", "", map[string]string{
|
||||||
"file1.txt": "95bb4d39648ee7e325106df01a621c530863a653",
|
"file1.txt": "95bb4d39648ee7e325106df01a621c530863a653",
|
||||||
"file2.txt": "8d92fc957a4d7cfd98bc375f0b7bb189a0d6c9f2",
|
"file2.txt": "8d92fc957a4d7cfd98bc375f0b7bb189a0d6c9f2",
|
||||||
}},
|
}, "8d92fc957a4d7cfd98bc375f0b7bb189a0d6c9f2"},
|
||||||
{"2839944139e0de9737a044f78b0e4b40d989a9e3", "", map[string]string{
|
{"2839944139e0de9737a044f78b0e4b40d989a9e3", "", map[string]string{
|
||||||
"file1.txt": "2839944139e0de9737a044f78b0e4b40d989a9e3",
|
"file1.txt": "2839944139e0de9737a044f78b0e4b40d989a9e3",
|
||||||
"branch1.txt": "9c9aef8dd84e02bc7ec12641deb4c930a7c30185",
|
"branch1.txt": "9c9aef8dd84e02bc7ec12641deb4c930a7c30185",
|
||||||
}},
|
}, "2839944139e0de9737a044f78b0e4b40d989a9e3"},
|
||||||
{"5c80b0245c1c6f8343fa418ec374b13b5d4ee658", "branch2", map[string]string{
|
{"5c80b0245c1c6f8343fa418ec374b13b5d4ee658", "branch2", map[string]string{
|
||||||
"branch2.txt": "5c80b0245c1c6f8343fa418ec374b13b5d4ee658",
|
"branch2.txt": "5c80b0245c1c6f8343fa418ec374b13b5d4ee658",
|
||||||
}},
|
}, "5c80b0245c1c6f8343fa418ec374b13b5d4ee658"},
|
||||||
|
{"feaf4ba6bc635fec442f46ddd4512416ec43c2c2", "", map[string]string{
|
||||||
|
"file1.txt": "95bb4d39648ee7e325106df01a621c530863a653",
|
||||||
|
"file2.txt": "8d92fc957a4d7cfd98bc375f0b7bb189a0d6c9f2",
|
||||||
|
"foo": "37991dec2c8e592043f47155ce4808d4580f9123",
|
||||||
|
}, "feaf4ba6bc635fec442f46ddd4512416ec43c2c2"},
|
||||||
}
|
}
|
||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
commit, err := repo1.GetCommit(testCase.CommitID)
|
commit, err := repo1.GetCommit(testCase.CommitID)
|
||||||
|
@ -51,7 +57,8 @@ func testGetCommitsInfo(t *testing.T, repo1 *Repository) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
entries, err := tree.ListEntries()
|
entries, err := tree.ListEntries()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
commitsInfo, _, err := entries.GetCommitsInfo(commit, testCase.Path, nil)
|
commitsInfo, treeCommit, err := entries.GetCommitsInfo(commit, testCase.Path, nil)
|
||||||
|
assert.Equal(t, testCase.ExpectedTreeCommit, treeCommit.ID.String())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Len(t, commitsInfo, len(testCase.ExpectedIDs))
|
assert.Len(t, commitsInfo, len(testCase.ExpectedIDs))
|
||||||
for _, commitInfo := range commitsInfo {
|
for _, commitInfo := range commitsInfo {
|
||||||
|
|
|
@ -23,12 +23,12 @@ func TestRepository_GetCodeActivityStats(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.NotNil(t, code)
|
assert.NotNil(t, code)
|
||||||
|
|
||||||
assert.EqualValues(t, 8, code.CommitCount)
|
assert.EqualValues(t, 9, code.CommitCount)
|
||||||
assert.EqualValues(t, 2, code.AuthorCount)
|
assert.EqualValues(t, 3, code.AuthorCount)
|
||||||
assert.EqualValues(t, 8, code.CommitCountInAllBranches)
|
assert.EqualValues(t, 9, code.CommitCountInAllBranches)
|
||||||
assert.EqualValues(t, 10, code.Additions)
|
assert.EqualValues(t, 10, code.Additions)
|
||||||
assert.EqualValues(t, 1, code.Deletions)
|
assert.EqualValues(t, 1, code.Deletions)
|
||||||
assert.Len(t, code.Authors, 2)
|
assert.Len(t, code.Authors, 3)
|
||||||
assert.Contains(t, code.Authors, "tris.git@shoddynet.org")
|
assert.Contains(t, code.Authors, "tris.git@shoddynet.org")
|
||||||
assert.EqualValues(t, 3, code.Authors["tris.git@shoddynet.org"])
|
assert.EqualValues(t, 3, code.Authors["tris.git@shoddynet.org"])
|
||||||
assert.EqualValues(t, 5, code.Authors[""])
|
assert.EqualValues(t, 5, code.Authors[""])
|
||||||
|
|
1
modules/git/tests/repos/repo1_bare/logs/HEAD
Normal file
1
modules/git/tests/repos/repo1_bare/logs/HEAD
Normal file
|
@ -0,0 +1 @@
|
||||||
|
37991dec2c8e592043f47155ce4808d4580f9123 feaf4ba6bc635fec442f46ddd4512416ec43c2c2 silverwind <me@silverwind.io> 1563741799 +0200 push
|
|
@ -0,0 +1 @@
|
||||||
|
37991dec2c8e592043f47155ce4808d4580f9123 feaf4ba6bc635fec442f46ddd4512416ec43c2c2 silverwind <me@silverwind.io> 1563741799 +0200 push
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
37991dec2c8e592043f47155ce4808d4580f9123
|
feaf4ba6bc635fec442f46ddd4512416ec43c2c2
|
||||||
|
|
Loading…
Reference in a new issue