Skip to content

Commit edd4ab4

Browse files
zeripath6543
andauthored
Ensure review dismissal only dismisses the correct review (#15477) (#15489)
Backport #15477 Fix #15472 Signed-off-by: Andrew Thornton [email protected] Co-authored-by: 6543 <[email protected]>
1 parent 55e6cde commit edd4ab4

File tree

2 files changed

+58
-8
lines changed

2 files changed

+58
-8
lines changed

models/review.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,11 @@ func DismissReview(review *Review, isDismiss bool) (err error) {
566566

567567
review.Dismissed = isDismiss
568568

569-
_, err = x.Cols("dismissed").Update(review)
569+
if review.ID == 0 {
570+
return ErrReviewNotExist{}
571+
}
572+
573+
_, err = x.ID(review.ID).Cols("dismissed").Update(review)
570574

571575
return
572576
}

models/review_test.go

+53-7
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,57 @@ func TestGetReviewersByIssueID(t *testing.T) {
143143
}
144144

145145
func TestDismissReview(t *testing.T) {
146-
review1 := AssertExistsAndLoadBean(t, &Review{ID: 9}).(*Review)
147-
review2 := AssertExistsAndLoadBean(t, &Review{ID: 11}).(*Review)
148-
assert.NoError(t, DismissReview(review1, true))
149-
assert.NoError(t, DismissReview(review2, true))
150-
assert.NoError(t, DismissReview(review2, true))
151-
assert.NoError(t, DismissReview(review2, false))
152-
assert.NoError(t, DismissReview(review2, false))
146+
assert.NoError(t, PrepareTestDatabase())
147+
148+
rejectReviewExample := AssertExistsAndLoadBean(t, &Review{ID: 9}).(*Review)
149+
requestReviewExample := AssertExistsAndLoadBean(t, &Review{ID: 11}).(*Review)
150+
approveReviewExample := AssertExistsAndLoadBean(t, &Review{ID: 8}).(*Review)
151+
assert.False(t, rejectReviewExample.Dismissed)
152+
assert.False(t, requestReviewExample.Dismissed)
153+
assert.False(t, approveReviewExample.Dismissed)
154+
155+
assert.NoError(t, DismissReview(rejectReviewExample, true))
156+
rejectReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 9}).(*Review)
157+
requestReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 11}).(*Review)
158+
assert.True(t, rejectReviewExample.Dismissed)
159+
assert.False(t, requestReviewExample.Dismissed)
160+
161+
assert.NoError(t, DismissReview(requestReviewExample, true))
162+
rejectReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 9}).(*Review)
163+
requestReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 11}).(*Review)
164+
assert.True(t, rejectReviewExample.Dismissed)
165+
assert.False(t, requestReviewExample.Dismissed)
166+
assert.False(t, approveReviewExample.Dismissed)
167+
168+
assert.NoError(t, DismissReview(requestReviewExample, true))
169+
rejectReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 9}).(*Review)
170+
requestReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 11}).(*Review)
171+
assert.True(t, rejectReviewExample.Dismissed)
172+
assert.False(t, requestReviewExample.Dismissed)
173+
assert.False(t, approveReviewExample.Dismissed)
174+
175+
assert.NoError(t, DismissReview(requestReviewExample, false))
176+
rejectReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 9}).(*Review)
177+
requestReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 11}).(*Review)
178+
assert.True(t, rejectReviewExample.Dismissed)
179+
assert.False(t, requestReviewExample.Dismissed)
180+
assert.False(t, approveReviewExample.Dismissed)
181+
182+
assert.NoError(t, DismissReview(requestReviewExample, false))
183+
rejectReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 9}).(*Review)
184+
requestReviewExample = AssertExistsAndLoadBean(t, &Review{ID: 11}).(*Review)
185+
assert.True(t, rejectReviewExample.Dismissed)
186+
assert.False(t, requestReviewExample.Dismissed)
187+
assert.False(t, approveReviewExample.Dismissed)
188+
189+
assert.NoError(t, DismissReview(rejectReviewExample, false))
190+
assert.False(t, rejectReviewExample.Dismissed)
191+
assert.False(t, requestReviewExample.Dismissed)
192+
assert.False(t, approveReviewExample.Dismissed)
193+
194+
assert.NoError(t, DismissReview(approveReviewExample, true))
195+
assert.False(t, rejectReviewExample.Dismissed)
196+
assert.False(t, requestReviewExample.Dismissed)
197+
assert.True(t, approveReviewExample.Dismissed)
198+
153199
}

0 commit comments

Comments
 (0)