Skip to content

Commit 6a4f579

Browse files
committed
Merge branch 'main' into joss
2 parents d2bff5d + 937107d commit 6a4f579

File tree

6 files changed

+61
-15
lines changed

6 files changed

+61
-15
lines changed

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.2.1
1+
3.2.2

Gemfile.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ GEM
3939
rugged (>= 0.24, < 2.0)
4040
thor (>= 0.19, < 2.0)
4141
mini_mime (1.1.2)
42-
mini_portile2 (2.8.1)
42+
mini_portile2 (2.8.2)
4343
multi_json (1.15.0)
4444
mustermann (3.0.0)
4545
ruby2_keywords (~> 0.0.1)
@@ -57,7 +57,7 @@ GEM
5757
puma (6.2.2)
5858
nio4r (~> 2.0)
5959
racc (1.6.2)
60-
rack (2.2.6.4)
60+
rack (2.2.7)
6161
rack-protection (3.0.5)
6262
rack
6363
rack-test (2.1.0)
@@ -71,9 +71,9 @@ GEM
7171
rspec-core (~> 3.12.0)
7272
rspec-expectations (~> 3.12.0)
7373
rspec-mocks (~> 3.12.0)
74-
rspec-core (3.12.1)
74+
rspec-core (3.12.2)
7575
rspec-support (~> 3.12.0)
76-
rspec-expectations (3.12.2)
76+
rspec-expectations (3.12.3)
7777
diff-lcs (>= 1.2.0, < 2.0)
7878
rspec-support (~> 3.12.0)
7979
rspec-mocks (3.12.5)
@@ -91,11 +91,11 @@ GEM
9191
multi_json (~> 1.15)
9292
rexml (~> 3.2, >= 3.2.5)
9393
thor (~> 1.2, >= 1.2.1)
94-
sidekiq (7.0.8)
94+
sidekiq (7.1.0)
9595
concurrent-ruby (< 2)
9696
connection_pool (>= 2.3.0)
9797
rack (>= 2.2.4)
98-
redis-client (>= 0.11.0)
98+
redis-client (>= 0.14.0)
9999
sinatra (3.0.5)
100100
mustermann (~> 3.0)
101101
rack (~> 2.2, >= 2.2.4)

app/responders/reminders_responder.rb

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,20 @@ def process_message(message)
1717

1818
human = "@#{user_login(context.sender)}" if human == "me"
1919

20-
unless targets.include?(human)
20+
unless targets.include?(human.downcase)
2121
respond("#{human} doesn't seem to be a reviewer or author for this submission.")
2222
return false
2323
end
2424

2525
schedule_at = target_time(size, unit)
2626

2727
if schedule_at
28-
if user_login(human) == user_login(context.sender)
28+
if user_login(human).downcase == user_login(context.sender).downcase
29+
human = "@#{user_login(context.sender)}"
2930
msg = ":wave: #{human}, please take a look at the state of the submission (this is an automated reminder)."
3031
AsyncMessageWorker.perform_at(schedule_at, serializable(locals), msg)
3132
else
32-
ReviewReminderWorker.perform_at(schedule_at, serializable(locals), human, authors_list.include?(human))
33+
ReviewReminderWorker.perform_at(schedule_at, serializable(locals), human, authors_list.include?(human.downcase))
3334
end
3435
respond("Reminder set for #{human} in #{size} #{unit}")
3536
else
@@ -38,16 +39,16 @@ def process_message(message)
3839
end
3940

4041
def targets
41-
(authors_list + reviewers_list + ["@#{user_login(context.sender)}"]).uniq
42+
(authors_list + reviewers_list + ["@#{user_login(context.sender).downcase}"]).uniq
4243
end
4344

4445
def reviewers_list
45-
@reviewers_list ||= reviewers_value.inject([]) {|re, value| re + read_value_from_body(value).split(",").map(&:strip)}
46+
@reviewers_list ||= reviewers_value.inject([]) {|re, value| re + read_value_from_body(value).split(",").map(&:strip).map(&:downcase)}
4647
@reviewers_list.compact.uniq
4748
end
4849

4950
def authors_list
50-
@authors_list ||= authors_value.inject([]) {|au, value| au + read_value_from_body(value).split(",").map(&:strip)}
51+
@authors_list ||= authors_value.inject([]) {|au, value| au + read_value_from_body(value).split(",").map(&:strip).map(&:downcase)}
5152
@authors_list.compact.uniq
5253
end
5354

app/responders/reviewer_checklist_comment_responder.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def process_message(message)
2222
end
2323

2424
def sender_in_reviewers_list?
25-
reviewers.include?("@#{context.sender}")
25+
reviewers.include?("@#{context.sender.downcase}")
2626
end
2727

2828
def update_checklists_links
@@ -38,7 +38,7 @@ def update_checklists_links
3838
end
3939

4040
def reviewers
41-
@reviewers ||= read_value_from_body("reviewers-list").split(",").map(&:strip)
41+
@reviewers ||= read_value_from_body("reviewers-list").split(",").map(&:strip).map(&:downcase)
4242
end
4343

4444
def checklists_mapping

spec/responders/reminders_responder_spec.rb

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,19 @@
5656
@responder.process_message(msg)
5757
end
5858

59+
it "should be case insensitive with the editor's GitHub handles" do
60+
msg = "@botsci remind @eDItoR21 in 5 weeks"
61+
@responder.match_data = @responder.event_regex.match(msg)
62+
in_five_weeks = Chronic.parse("in 5 weeks")
63+
expect(@responder).to receive(:target_time).with("5", "weeks").and_return(in_five_weeks)
64+
expected_msg = ":wave: @editor21, please take a look at the state of the submission (this is an automated reminder)."
65+
expect(AsyncMessageWorker).to receive(:perform_at).with(in_five_weeks, @responder.locals, expected_msg)
66+
expect(ReviewReminderWorker).to_not receive(:perform_at)
67+
expect(@responder).to receive(:respond).with("Reminder set for @editor21 in 5 weeks")
68+
69+
@responder.process_message(msg)
70+
end
71+
5972
it "should respond success message and schedule worker run for 'me'" do
6073
msg = "@botsci remind me in 15 days"
6174
@responder.match_data = @responder.event_regex.match(msg)
@@ -88,6 +101,26 @@
88101
expect(ReviewReminderWorker).to receive(:perform_at).with(in_four_days, @responder.locals, "@author", true)
89102
@responder.process_message(msg)
90103
end
104+
105+
it "should be case insensitive with the reviewers GitHub handles" do
106+
msg = "@botsci remind @ReVieWEr42 in 3 weeks"
107+
@responder.match_data = @responder.event_regex.match(msg)
108+
expect(ReviewReminderWorker).to receive(:perform_at)
109+
expect(@responder).to receive(:respond).with("Reminder set for @ReVieWEr42 in 3 weeks")
110+
111+
@responder.process_message(msg)
112+
end
113+
114+
it "should be case insensitive with the authors GitHub handles" do
115+
msg = "@botsci remind @AUTHor in 4 days"
116+
@responder.match_data = @responder.event_regex.match(msg)
117+
118+
in_four_days = Chronic.parse("in 4 days")
119+
expect(@responder).to receive(:target_time).with("4", "days").and_return(in_four_days)
120+
121+
expect(ReviewReminderWorker).to receive(:perform_at).with(in_four_days, @responder.locals, "@AUTHor", true)
122+
@responder.process_message(msg)
123+
end
91124
end
92125

93126
describe "configurable targets" do

spec/responders/reviewer_checklist_comment_responder_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@
5151
@responder.process_message(@msg)
5252
end
5353

54+
it "should be case insensitive for the reviewer's username" do
55+
@responder.context[:sender] = "ReVIEwer1"
56+
57+
expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "ReVIEwer1" }
58+
expected_checklist = "Checklist for @ReVIEwer1 \n[] A"
59+
60+
expect(@responder).to receive(:render_external_template).with("checklist.md", expected_locals).and_return(expected_checklist)
61+
expect(@responder).to receive(:update_comment).with(111222, expected_checklist)
62+
expect(@responder).to_not receive(:respond)
63+
@responder.process_message(@msg)
64+
end
65+
5466
it "should not add user checklist if sender is not a reviewer" do
5567
@responder.context[:sender] = "nonreviewer"
5668

0 commit comments

Comments
 (0)