mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 20:21:47 +01:00 
			
		
		
		
	Fix 500 when deleting a dismissed review (#27903)
Fix #27767 Add a test to ensure its behavior
This commit is contained in:
		
							parent
							
								
									59f9ef9fee
								
							
						
					
					
						commit
						966dcb99e3
					
				| @ -897,6 +897,16 @@ func DeleteReview(ctx context.Context, r *Review) error { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	opts = FindCommentsOptions{ | ||||
| 		Type:     CommentTypeDismissReview, | ||||
| 		IssueID:  r.IssueID, | ||||
| 		ReviewID: r.ID, | ||||
| 	} | ||||
| 
 | ||||
| 	if _, err := sess.Where(opts.ToConds()).Delete(new(Comment)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if _, err := sess.ID(r.ID).Delete(new(Review)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| @ -8,6 +8,7 @@ import ( | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	issues_model "code.gitea.io/gitea/models/issues" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	"code.gitea.io/gitea/models/unittest" | ||||
| 	user_model "code.gitea.io/gitea/models/user" | ||||
| 
 | ||||
| @ -258,3 +259,32 @@ func TestDeleteReview(t *testing.T) { | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.True(t, review1.Official) | ||||
| } | ||||
| 
 | ||||
| func TestDeleteDismissedReview(t *testing.T) { | ||||
| 	assert.NoError(t, unittest.PrepareTestDatabase()) | ||||
| 
 | ||||
| 	issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 2}) | ||||
| 	user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}) | ||||
| 	repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: issue.RepoID}) | ||||
| 	review, err := issues_model.CreateReview(db.DefaultContext, issues_model.CreateReviewOptions{ | ||||
| 		Content:  "reject", | ||||
| 		Type:     issues_model.ReviewTypeReject, | ||||
| 		Official: false, | ||||
| 		Issue:    issue, | ||||
| 		Reviewer: user, | ||||
| 	}) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.NoError(t, issues_model.DismissReview(db.DefaultContext, review, true)) | ||||
| 	comment, err := issues_model.CreateComment(db.DefaultContext, &issues_model.CreateCommentOptions{ | ||||
| 		Type:     issues_model.CommentTypeDismissReview, | ||||
| 		Doer:     user, | ||||
| 		Repo:     repo, | ||||
| 		Issue:    issue, | ||||
| 		ReviewID: review.ID, | ||||
| 		Content:  "dismiss", | ||||
| 	}) | ||||
| 	assert.NoError(t, err) | ||||
| 	unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: comment.ID}) | ||||
| 	assert.NoError(t, issues_model.DeleteReview(db.DefaultContext, review)) | ||||
| 	unittest.AssertNotExistsBean(t, &issues_model.Comment{ID: comment.ID}) | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user