Skip to content

Commit fa42352

Browse files
fix: don't let COMMENTED review override APPROVED or CHANGES_REQUESTED
Make a COMMENTED state never override an APPROVED or CHANGES_REQUESTED state, for the purposes of the state indicator we show in Reviewers. Make the indicator stay at the most-significant state. Fixes dlvhdr#728 (comment)
1 parent cd82ed7 commit fa42352

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

internal/tui/components/prview/prview.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,11 @@ func (m *Model) renderRequestedReviewers() string {
350350
reviewStates := make(map[string]string)
351351
for _, review := range reviews {
352352
login := review.Author.Login
353+
existingState := reviewStates[login]
354+
// Don't override APPROVED or CHANGES_REQUESTED with COMMENTED
355+
if review.State == "COMMENTED" && (existingState == "APPROVED" || existingState == "CHANGES_REQUESTED") {
356+
continue
357+
}
353358
reviewStates[login] = review.State
354359
}
355360

internal/tui/components/prview/reviewers_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,24 @@ func TestRenderRequestedReviewers(t *testing.T) {
202202
},
203203
wantContains: []string{"Reviewers", "@charlie", constants.CommentIcon},
204204
},
205+
"reviewer who approved then commented": {
206+
reviewRequests: []data.ReviewRequestNode{},
207+
reviews: []data.Review{
208+
{Author: struct{ Login string }{Login: "alice"}, State: "APPROVED"},
209+
{Author: struct{ Login string }{Login: "alice"}, State: "COMMENTED"},
210+
},
211+
wantContains: []string{"Reviewers", "@alice", constants.ApprovedIcon},
212+
wantNotContain: []string{constants.CommentIcon},
213+
},
214+
"reviewer who requested changes then commented": {
215+
reviewRequests: []data.ReviewRequestNode{},
216+
reviews: []data.Review{
217+
{Author: struct{ Login string }{Login: "bob"}, State: "CHANGES_REQUESTED"},
218+
{Author: struct{ Login string }{Login: "bob"}, State: "COMMENTED"},
219+
},
220+
wantContains: []string{"Reviewers", "@bob", constants.ChangesRequestedIcon},
221+
wantNotContain: []string{constants.CommentIcon},
222+
},
205223
"mix of pending and completed reviews": {
206224
reviewRequests: []data.ReviewRequestNode{
207225
{

0 commit comments

Comments
 (0)