Browse Source

fix 500 when reviewer is deleted with integration tests (#6856)

release/v1.9
Lunny Xiao 4 years ago
committed by GitHub
parent
commit
2382f1b057
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 20
      integrations/pull_review_test.go
  2. 12
      models/fixtures/comment.yml
  3. 9
      models/fixtures/review.yml
  4. 1
      models/issue_comment.go
  5. 9
      routers/repo/issue.go

20
integrations/pull_review_test.go

@ -0,0 +1,20 @@
// Copyright 2019 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 integrations
import (
"net/http"
"testing"
)
func TestPullView_ReviewerMissed(t *testing.T) {
prepareTestEnv(t)
session := loginUser(t, "user1")
req := NewRequest(t, "GET", "/pulls")
session.MakeRequest(t, req, http.StatusOK)
req = NewRequest(t, "GET", "/user2/repo1/pulls/3")
session.MakeRequest(t, req, http.StatusOK)
}

12
models/fixtures/comment.yml

@ -52,3 +52,15 @@
tree_path: "README.md"
created_unix: 946684812
invalidated: true
-
id: 7
type: 21 # code comment
poster_id: 100
issue_id: 3
content: "a review from a deleted user"
line: -4
review_id: 10
tree_path: "README.md"
created_unix: 946684812
invalidated: true

9
models/fixtures/review.yml

@ -70,3 +70,12 @@
content: "New review 3 rejected"
updated_unix: 946684810
created_unix: 946684810
-
id: 10
type: 3
reviewer_id: 100
issue_id: 3
content: "a deleted user's review"
updated_unix: 946684810
created_unix: 946684810

1
models/issue_comment.go

@ -447,6 +447,7 @@ func (c *Comment) loadReview(e Engine) (err error) {
return err
}
}
c.Review.Issue = c.Issue
return nil
}

9
routers/repo/issue.go

@ -773,6 +773,8 @@ func ViewIssue(ctx *context.Context) {
// Render comments and and fetch participants.
participants[0] = issue.Poster
for _, comment = range issue.Comments {
comment.Issue = issue
if err := comment.LoadPoster(); err != nil {
ctx.ServerError("LoadPoster", err)
return
@ -850,8 +852,11 @@ func ViewIssue(ctx *context.Context) {
continue
}
if err = comment.Review.LoadAttributes(); err != nil {
ctx.ServerError("Review.LoadAttributes", err)
return
if !models.IsErrUserNotExist(err) {
ctx.ServerError("Review.LoadAttributes", err)
return
}
comment.Review.Reviewer = models.NewGhostUser()
}
if err = comment.Review.LoadCodeComments(); err != nil {
ctx.ServerError("Review.LoadCodeComments", err)

Loading…
Cancel
Save