Remove feedback reminder label when feedback is provided
This commit is contained in:
@@ -56,6 +56,9 @@ final class StandardFeedbackListener implements FeedbackListener {
|
||||
public void feedbackProvided(Issue issue) {
|
||||
this.gitHub.addLabel(issue, this.providedLabel);
|
||||
this.gitHub.removeLabel(issue, this.requiredLabel);
|
||||
if (hasReminderLabel(issue)) {
|
||||
this.gitHub.removeLabel(issue, this.reminderLabel);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -64,7 +67,7 @@ final class StandardFeedbackListener implements FeedbackListener {
|
||||
if (requestTime.plusDays(14).isBefore(now)) {
|
||||
close(issue);
|
||||
}
|
||||
else if (requestTime.plusDays(7).isBefore(now) && reminderRequired(issue)) {
|
||||
else if (requestTime.plusDays(7).isBefore(now) && !hasReminderLabel(issue)) {
|
||||
remind(issue);
|
||||
}
|
||||
}
|
||||
@@ -76,15 +79,15 @@ final class StandardFeedbackListener implements FeedbackListener {
|
||||
this.gitHub.removeLabel(issue, this.reminderLabel);
|
||||
}
|
||||
|
||||
private boolean reminderRequired(Issue issue) {
|
||||
private boolean hasReminderLabel(Issue issue) {
|
||||
if (issue.getLabels() != null) {
|
||||
for (Label label : issue.getLabels()) {
|
||||
if (this.reminderLabel.equals(label.getName())) {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private void remind(Issue issue) {
|
||||
|
||||
@@ -17,8 +17,7 @@
|
||||
package io.spring.issuebot.feedback;
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -43,14 +42,24 @@ public class StandardFeedbackListenerTests {
|
||||
"feedback-provided", "feedback-required", "feedback-reminder",
|
||||
"Please provide requested feedback", "Closing due to lack of feedback");
|
||||
|
||||
private final Issue issue = new Issue(null, null, null, null, null,
|
||||
Collections.<Label>emptyList(), null, null);
|
||||
private final Issue issue = new Issue(null, null, null, null, null, new ArrayList<>(),
|
||||
null, null);
|
||||
|
||||
@Test
|
||||
public void feedbackProvided() {
|
||||
this.listener.feedbackProvided(this.issue);
|
||||
verify(this.gitHub).addLabel(this.issue, "feedback-provided");
|
||||
verify(this.gitHub).removeLabel(this.issue, "feedback-required");
|
||||
verifyNoMoreInteractions(this.gitHub);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void feedbackProvidedAfterReminder() {
|
||||
this.issue.getLabels().add(new Label("feedback-reminder"));
|
||||
this.listener.feedbackProvided(this.issue);
|
||||
verify(this.gitHub).addLabel(this.issue, "feedback-provided");
|
||||
verify(this.gitHub).removeLabel(this.issue, "feedback-required");
|
||||
verify(this.gitHub).removeLabel(this.issue, "feedback-reminder");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -68,9 +77,8 @@ public class StandardFeedbackListenerTests {
|
||||
|
||||
@Test
|
||||
public void feedbackRequiredReminderDueAndAlreadyCommented() {
|
||||
Issue issue = new Issue(null, null, null, null, null,
|
||||
Arrays.asList(new Label("feedback-reminder")), null, null);
|
||||
this.listener.feedbackRequired(issue, OffsetDateTime.now().minusDays(8));
|
||||
this.issue.getLabels().add(new Label("feedback-reminder"));
|
||||
this.listener.feedbackRequired(this.issue, OffsetDateTime.now().minusDays(8));
|
||||
verifyNoMoreInteractions(this.gitHub);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user