From 66866260a5855f4ebb080f681d4d7bf1ff1f1311 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 8 Jul 2025 18:49:24 -0700 Subject: [PATCH] Revert change in commit list table about User ID and adding some tests --- models/user/user.go | 6 --- templates/repo/commits_list.tmpl | 2 +- tests/integration/repo_commits_test.go | 64 ++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 7 deletions(-) diff --git a/models/user/user.go b/models/user/user.go index 7c871bf575..4c27d08d89 100644 --- a/models/user/user.go +++ b/models/user/user.go @@ -1166,12 +1166,6 @@ func ValidateCommitsWithEmails(ctx context.Context, oldCommits []*git.Commit) ([ for _, c := range oldCommits { user := emailUserMap.GetByEmail(c.Author.Email) // FIXME: why ValidateCommitsWithEmails uses "Author", but ParseCommitsWithSignature uses "Committer"? - if user == nil { - user = &User{ - Name: c.Author.Name, - Email: c.Author.Email, - } - } newCommits = append(newCommits, &UserCommit{ User: user, Commit: c, diff --git a/templates/repo/commits_list.tmpl b/templates/repo/commits_list.tmpl index 9dae6594b9..959f2a9398 100644 --- a/templates/repo/commits_list.tmpl +++ b/templates/repo/commits_list.tmpl @@ -16,7 +16,7 @@
{{$userName := .Author.Name}} - {{if and .User (gt .User.ID 0)}} /* User with id == 0 is a fake user from git author */ + {{if .User}} {{if and .User.FullName DefaultShowFullName}} {{$userName = .User.FullName}} {{end}} diff --git a/tests/integration/repo_commits_test.go b/tests/integration/repo_commits_test.go index 0097a7f62e..f1a268c71d 100644 --- a/tests/integration/repo_commits_test.go +++ b/tests/integration/repo_commits_test.go @@ -57,6 +57,70 @@ func Test_ReposGitCommitListNotMaster(t *testing.T) { userHrefs = append(userHrefs, userHref) }) assert.Equal(t, []string{"/user2", "/user21", "/user2"}, userHrefs) + + // check last commit author wrapper + req = NewRequest(t, "GET", "/user2/repo16") + resp = session.MakeRequest(t, req, http.StatusOK) + + doc = NewHTMLParser(t, resp.Body) + commits = []string{} + doc.doc.Find(".latest-commit .commit-id-short").Each(func(i int, s *goquery.Selection) { + commitURL, _ := s.Attr("href") + commits = append(commits, path.Base(commitURL)) + }) + assert.Equal(t, []string{"69554a64c1e6030f051e5c3f94bfbd773cd6a324"}, commits) + + userHrefs = []string{} + doc.doc.Find(".latest-commit .author-wrapper").Each(func(i int, s *goquery.Selection) { + userHref, _ := s.Attr("href") + userHrefs = append(userHrefs, userHref) + }) + assert.Equal(t, []string{"/user2"}, userHrefs) +} + +func Test_ReposGitCommitListNoGiteaUser(t *testing.T) { + // Commits list with Gitea User has been tested in Test_ReposGitCommitListNotMaster + defer tests.PrepareTestEnv(t)() + session := loginUser(t, "user2") + + // check commits list for a repository with no gitea user + req := NewRequest(t, "GET", "/user2/repo1/commits/branch/master") + resp := session.MakeRequest(t, req, http.StatusOK) + + doc := NewHTMLParser(t, resp.Body) + var commits []string + doc.doc.Find("#commits-table .commit-id-short").Each(func(i int, s *goquery.Selection) { + commitURL, _ := s.Attr("href") + commits = append(commits, path.Base(commitURL)) + }) + assert.Equal(t, []string{"65f1bf27bc3bf70f64657658635e66094edbcb4d"}, commits) + + var gitUsers []string + doc.doc.Find("#commits-table .author-wrapper").Each(func(i int, s *goquery.Selection) { + assert.Equal(t, "span", goquery.NodeName(s)) + gitUser := s.Text() + gitUsers = append(gitUsers, gitUser) + }) + assert.Equal(t, []string{"user1"}, gitUsers) + + // check last commit author wrapper + req = NewRequest(t, "GET", "/user2/repo1") + resp = session.MakeRequest(t, req, http.StatusOK) + + doc = NewHTMLParser(t, resp.Body) + commits = []string{} + doc.doc.Find(".latest-commit .commit-id-short").Each(func(i int, s *goquery.Selection) { + commitURL, _ := s.Attr("href") + commits = append(commits, path.Base(commitURL)) + }) + assert.Equal(t, []string{"65f1bf27bc3bf70f64657658635e66094edbcb4d"}, commits) + + gitUsers = []string{} + doc.doc.Find(".latest-commit .author-wrapper").Each(func(i int, s *goquery.Selection) { + assert.Equal(t, "span", goquery.NodeName(s)) + gitUsers = append(gitUsers, s.Text()) + }) + assert.Equal(t, []string{"user1"}, gitUsers) } func doTestRepoCommitWithStatus(t *testing.T, state string, classes ...string) {