forked from forgejo/forgejo
fix: release page for empty or non-existing target (#24659)
Backport #24470 Fixes #24145 --- To solve the bug, I added a "computed" `TargetBehind` field to the `Release` model, which indicates the target branch of a release. This is particularly useful if the target branch was deleted in the meantime (or is empty). I also did a micro-optimization in `calReleaseNumCommitsBehind`. Instead of checking that a branch exists and then call `GetBranchCommit`, I immediately call `GetBranchCommit` and handle the `git.ErrNotExist` error. This optimization is covered by the added unit test. _contributed in the context of @forgejo_
This commit is contained in:
parent
7eaf7aacde
commit
cb7ba8969d
6 changed files with 107 additions and 17 deletions
|
@ -143,10 +143,10 @@ func TestViewReleaseListNoLogin(t *testing.T) {
|
|||
|
||||
htmlDoc := NewHTMLParser(t, rsp.Body)
|
||||
releases := htmlDoc.Find("#release-list li.ui.grid")
|
||||
assert.Equal(t, 3, releases.Length())
|
||||
assert.Equal(t, 5, releases.Length())
|
||||
|
||||
links := make([]string, 0, 3)
|
||||
commitsToMain := make([]string, 0, 3)
|
||||
links := make([]string, 0, 5)
|
||||
commitsToMain := make([]string, 0, 5)
|
||||
releases.Each(func(i int, s *goquery.Selection) {
|
||||
link, exist := s.Find(".release-list-title a").Attr("href")
|
||||
if !exist {
|
||||
|
@ -158,11 +158,15 @@ func TestViewReleaseListNoLogin(t *testing.T) {
|
|||
})
|
||||
|
||||
assert.EqualValues(t, []string{
|
||||
"/user2/repo-release/releases/tag/empty-target-branch",
|
||||
"/user2/repo-release/releases/tag/non-existing-target-branch",
|
||||
"/user2/repo-release/releases/tag/v2.0",
|
||||
"/user2/repo-release/releases/tag/v1.1",
|
||||
"/user2/repo-release/releases/tag/v1.0",
|
||||
}, links)
|
||||
assert.EqualValues(t, []string{
|
||||
"1 commits", // like v1.1
|
||||
"1 commits", // like v1.1
|
||||
"0 commits",
|
||||
"1 commits", // should be 3 commits ahead and 2 commits behind, but not implemented yet
|
||||
"3 commits",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue