aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLunny Xiao2019-05-06 22:03:35 +0800
committerLauris BH2019-05-06 17:03:35 +0300
commit96eb99ea558a983dbbc7d2ecbe52dbaeca7e344b (patch)
tree8b9b00faed9fa90f4c0d555380c585ed93a67364
parent83560bf9d0e141b1498e724d0e68d462625e4624 (diff)
fix 500 when reviewer is deleted with integration tests (#6856) (#6860)
-rw-r--r--integrations/pull_review_test.go20
-rw-r--r--models/fixtures/comment.yml12
-rw-r--r--models/fixtures/review.yml9
-rw-r--r--models/issue_comment.go1
-rw-r--r--routers/repo/issue.go9
5 files changed, 49 insertions, 2 deletions
diff --git a/integrations/pull_review_test.go b/integrations/pull_review_test.go
new file mode 100644
index 000000000..b4ddc0e74
--- /dev/null
+++ b/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)
+}
diff --git a/models/fixtures/comment.yml b/models/fixtures/comment.yml
index 6abd26973..864313cac 100644
--- a/models/fixtures/comment.yml
+++ b/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 \ No newline at end of file
diff --git a/models/fixtures/review.yml b/models/fixtures/review.yml
index 515f0d77f..a0122dea9 100644
--- a/models/fixtures/review.yml
+++ b/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 \ No newline at end of file
diff --git a/models/issue_comment.go b/models/issue_comment.go
index c3654460f..e58e2e4bc 100644
--- a/models/issue_comment.go
+++ b/models/issue_comment.go
@@ -419,6 +419,7 @@ func (c *Comment) loadReview(e Engine) (err error) {
return err
}
}
+ c.Review.Issue = c.Issue
return nil
}
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index 33d3ec6a7..e1c92b216 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -753,6 +753,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
@@ -830,8 +832,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)