Pārlūkot izejas kodu

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

tags/v1.9.0-rc1
Lunny Xiao pirms 5 gadiem
vecāks
revīzija
2382f1b057
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam

+ 20
- 0
integrations/pull_review_test.go Parādīt failu

// 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
- 0
models/fixtures/comment.yml Parādīt failu

tree_path: "README.md" tree_path: "README.md"
created_unix: 946684812 created_unix: 946684812
invalidated: true 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
- 0
models/fixtures/review.yml Parādīt failu

content: "New review 3 rejected" content: "New review 3 rejected"
updated_unix: 946684810 updated_unix: 946684810
created_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
- 0
models/issue_comment.go Parādīt failu

return err return err
} }
} }
c.Review.Issue = c.Issue
return nil return nil
} }



+ 7
- 2
routers/repo/issue.go Parādīt failu

// Render comments and and fetch participants. // Render comments and and fetch participants.
participants[0] = issue.Poster participants[0] = issue.Poster
for _, comment = range issue.Comments { for _, comment = range issue.Comments {
comment.Issue = issue

if err := comment.LoadPoster(); err != nil { if err := comment.LoadPoster(); err != nil {
ctx.ServerError("LoadPoster", err) ctx.ServerError("LoadPoster", err)
return return
continue continue
} }
if err = comment.Review.LoadAttributes(); err != nil { 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 { if err = comment.Review.LoadCodeComments(); err != nil {
ctx.ServerError("Review.LoadCodeComments", err) ctx.ServerError("Review.LoadCodeComments", err)

Notiek ielāde…
Atcelt
Saglabāt