Skip to content

Commit bd74d35

Browse files
committed
Add test and fix problem for API routers
1 parent 0ab222f commit bd74d35

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

models/issues/milestone.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ func (m *Milestone) AfterLoad(session *xorm.Session) {
8989
if m.DeadlineUnix == 0 {
9090
return
9191
}
92+
// for legacy reasons, all years after 9000 are considered as no deadline
9293
if m.DeadlineUnix.Year() > 9000 {
9394
m.DeadlineUnix = 0
9495
m.IsOverdue = false

services/convert/issue.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,10 @@ func ToAPIMilestone(m *issues_model.Milestone) *api.Milestone {
260260
if m.IsClosed {
261261
apiMilestone.Closed = m.ClosedDateUnix.AsTimePtr()
262262
}
263-
if m.DeadlineUnix.Year() < 9999 {
263+
// for legacy reasons, all years after 9000 are considered as no deadline
264+
if m.DeadlineUnix.Year() > 9000 || m.DeadlineUnix == 0 {
265+
apiMilestone.Deadline = nil
266+
} else {
264267
apiMilestone.Deadline = m.DeadlineUnix.AsTimePtr()
265268
}
266269
return apiMilestone

tests/integration/api_issue_milestone_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"fmt"
88
"net/http"
99
"testing"
10+
"time"
1011

1112
auth_model "code.gitea.io/gitea/models/auth"
1213
issues_model "code.gitea.io/gitea/models/issues"
@@ -59,13 +60,15 @@ func TestAPIIssuesMilestone(t *testing.T) {
5960
DecodeJSON(t, resp, &apiMilestone)
6061
assert.Equal(t, "wow", apiMilestone.Title)
6162
assert.Equal(t, structs.StateClosed, apiMilestone.State)
63+
assert.Equal(t, (*time.Time)(nil), apiMilestone.Deadline)
6264

6365
var apiMilestones []structs.Milestone
6466
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s", owner.Name, repo.Name, "all")).
6567
AddTokenAuth(token)
6668
resp = MakeRequest(t, req, http.StatusOK)
6769
DecodeJSON(t, resp, &apiMilestones)
6870
assert.Len(t, apiMilestones, 4)
71+
assert.Equal(t, (*time.Time)(nil), apiMilestones[0].Deadline)
6972

7073
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%s", owner.Name, repo.Name, apiMilestones[2].Title)).
7174
AddTokenAuth(token)

0 commit comments

Comments
 (0)