Skip to content

Commit

Permalink
Merge branch 'main' into joss
Browse files Browse the repository at this point in the history
  • Loading branch information
xuanxu committed Sep 25, 2023
2 parents 28346fb + 1ad0038 commit 21fa1f6
Show file tree
Hide file tree
Showing 15 changed files with 35 additions and 23 deletions.
1 change: 1 addition & 0 deletions app/lib/responder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ def locals
from_context = Sinatra::IndifferentHash[
issue_id: context.issue_id,
issue_author: context.issue_author,
issue_title: context.issue_title,
repo: context.repo,
sender: context.sender,
bot_name: bot_name ]
Expand Down
7 changes: 4 additions & 3 deletions spec/responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -335,25 +335,26 @@
before do
@responder = described_class.new({ env: {bot_github_user: 'botsci'} }, {})
@responder.context = OpenStruct.new(issue_id: 5,
issue_title: "Test submission",
issue_author: "opener",
repo: "openjournals/buffy",
sender: "user33",
issue_body: "Test Software Review\n\n<!--reviewer-->@xuanxu<!--end-reviewer-->")
end

it "should include basic config info" do
expected_locals = Sinatra::IndifferentHash[issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33"]
expected_locals = Sinatra::IndifferentHash[issue_id: 5, issue_author: "opener", issue_title: "Test submission", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33"]
expect(@responder.locals).to eq(expected_locals)
end

it "should add info from the issue body if requested" do
@responder.params = {data_from_issue: ["reviewer"]}
expected_locals = Sinatra::IndifferentHash[issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", "reviewer" => "@xuanxu"]
expected_locals = Sinatra::IndifferentHash[issue_id: 5, issue_author: "opener", issue_title: "Test submission", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", "reviewer" => "@xuanxu"]
expect(@responder.locals).to eq(expected_locals)
end

it "should add info from the event_regex if present" do
expected_locals = Sinatra::IndifferentHash[issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", match_data_1: "@xuanxu"]
expected_locals = Sinatra::IndifferentHash[issue_id: 5, issue_author: "opener", issue_title: "Test submission", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", match_data_1: "@xuanxu"]
@responder.event_regex = /\A@bot assign (.*) as editor\z/i
@responder.match_data = @responder.event_regex.match("@bot assign @xuanxu as editor")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
before do
@responder.context = OpenStruct.new(issue_id: 5,
issue_author: "opener",
issue_title: "New paper",
repo: "openjournals/buffy",
sender: "user33",
issue_body: "Test Review\n\n ... description ..." +
Expand All @@ -43,7 +44,7 @@
msg = "@botsci add checklist for @arfon"
@responder.match_data = @responder.event_regex.match(msg)

expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", match_data_1: "add", match_data_2: "@arfon" }
expected_locals = { issue_id: 5, issue_author: "opener", issue_title: "New paper", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", match_data_1: "add", match_data_2: "@arfon" }
expected_checklist = "\n<!--checklist-for-@arfon-->" +
"\n## Review checklist for @arfon" +
"\n[] A" +
Expand Down
3 changes: 2 additions & 1 deletion spec/responders/basic_command_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
@responder = subject.new({env: {bot_github_user: "botsci"}}, params)
@responder.context = OpenStruct.new(issue_id: 15,
issue_author: "opener",
issue_title: "New paper",
repo: "tests",
sender: "rev33",
issue_body: "Test Review\n\n ... <!--x-->X<!--end-x-->...")
Expand All @@ -43,7 +44,7 @@
expect(@responder).to receive(:respond).with("Here you have the list of editors")
expect(@responder).to receive(:respond).with("msg 1")
expect(@responder).to receive(:respond).with("msg 2")
expected_params = { bot_name: "botsci", issue_author: "opener", issue_id: 15, repo: "tests", sender: "rev33", "x"=>"X" }
expected_params = { bot_name: "botsci", issue_author: "opener", issue_title: "New paper", issue_id: 15, repo: "tests", sender: "rev33", "x"=>"X" }
expect(@responder).to receive(:render_external_template).
with("editor_list.md", expected_params).
and_return("editor 1 & editor 2")
Expand Down
2 changes: 1 addition & 1 deletion spec/responders/check_references_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
end

describe "#process_message" do
let(:expected_locals) { {"bot_name" => "botsci", "issue_author" => nil, "issue_id" => nil, "repo" => nil, "sender" => nil} }
let(:expected_locals) { {"bot_name" => "botsci", "issue_author" => nil, "issue_title" => nil, "issue_id" => nil, "repo" => nil, "sender" => nil} }

it "should respond an error message if no url" do
expect(@responder).to receive(:respond).with("I couldn't find the URL for the target repository")
Expand Down
6 changes: 2 additions & 4 deletions spec/responders/external_service_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
@responder = subject.new(settings, params)
@responder.context = OpenStruct.new(issue_id: 33,
issue_author: "opener",
issue_title: "Test title",
repo: "openjournals/testing",
sender: "xuanxu")
disable_github_calls_for(@responder)
Expand All @@ -53,11 +54,8 @@
end

it "should pass right info to the worker" do
params = { name: "test-service", command: "run tests", url: "http://testing.openjournals.org" }
locals = { bot_name: "botsci", issue_author: "opener", issue_id: 33, repo: "openjournals/testing", sender: "xuanxu" }

expected_params = { "name" => "test-service", "command" => "run tests", "url" => "http://testing.openjournals.org", "extra" => {"restrict_access" => true} }
expected_locals = { "bot_name" => "botsci", "issue_author" => "opener", "issue_id" => 33, "repo" => "openjournals/testing", "sender" => "xuanxu"}
expected_locals = { "bot_name" => "botsci", "issue_author" => "opener", "issue_title" => "Test title","issue_id" => 33, "repo" => "openjournals/testing", "sender" => "xuanxu"}
expect(ExternalServiceWorker).to receive(:perform_async).with(expected_params, expected_locals)
@responder.process_message("")
end
Expand Down
1 change: 1 addition & 0 deletions spec/responders/external_start_review_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
"editor_login" => "arfon",
"editor_username" => "@arfon",
"issue_author" => "opener",
"issue_title" => "[PRE REVIEW]: TesT",
"issue_id" => 33,
"repo" => "openjournals/testing",
"reviewers_logins" => "xuanxu,karthik",
Expand Down
6 changes: 4 additions & 2 deletions spec/responders/goodbye_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,15 @@
@responder = subject.new({env: {bot_github_user: "botsci"}}, { template_file: "thanks.md", data_from_issue: ["reviewer"] })
@responder.context = OpenStruct.new(issue_id: 5,
issue_author: "opener",
issue_title: "Test paper",
repo: "openjournals/buffy",
sender: "user33",
issue_body: "Test Software Review\n\n<!--reviewer-->@xuanxu<!--end-reviewer-->")
disable_github_calls_for(@responder)
end

it "should populate locals" do
expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", "reviewer" => "@xuanxu" }
expected_locals = { issue_id: 5, issue_author: "opener", issue_title: "Test paper", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", "reviewer" => "@xuanxu" }

expect(@responder).to receive(:respond_external_template).with("thanks.md", expected_locals)
@responder.process_message("")
Expand All @@ -96,6 +97,7 @@
@responder = subject.new(settings, {external_service: params})
@responder.context = OpenStruct.new(issue_id: 33,
issue_author: "opener",
issue_title: "Test paper",
repo: "openjournals/testing",
sender: "xuanxu",
issue_body: "Test Review\n\n<!--extra-data-->ABC123<!--end-extra-data-->")
Expand All @@ -108,7 +110,7 @@

it "should pass right info to the worker" do
expected_params = { "name" => "test-service", "url" => "http://testing.openjournals.org", "data_from_issue" => ["extra-data"] }
expected_locals = { "extra-data" => "ABC123", "bot_name" => "botsci", "issue_author" => "opener", "issue_id" => 33, "repo" => "openjournals/testing", "sender" => "xuanxu" }
expected_locals = { "extra-data" => "ABC123", "bot_name" => "botsci", "issue_author" => "opener", "issue_title" => "Test paper", "issue_id" => 33, "repo" => "openjournals/testing", "sender" => "xuanxu" }
expect(ExternalServiceWorker).to receive(:perform_async).with(expected_params, expected_locals)
@responder.process_message("")
end
Expand Down
2 changes: 1 addition & 1 deletion spec/responders/reminders_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
before do
settings = { env: { bot_github_user: "botsci" }}
@responder = RemindersResponder.new(settings, {})
@responder.context = OpenStruct.new(issue_body: "", sender: "editor21")
@responder.context = OpenStruct.new(issue_body: "", issue_title: "", sender: "editor21")
disable_github_calls_for(@responder)
end

Expand Down
2 changes: 1 addition & 1 deletion spec/responders/repo_checks_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
end

describe "#process_message" do
let(:expected_locals) { {"bot_name" => "botsci", "issue_author" => nil, "issue_id" => nil, "repo" => nil, "sender" => nil} }
let(:expected_locals) { {"bot_name" => "botsci", "issue_author" => nil, "issue_title" => nil, "issue_id" => nil, "repo" => nil, "sender" => nil} }

it "should respond an error message if no url" do
@responder.params[:url_field] = "url"
Expand Down
7 changes: 4 additions & 3 deletions spec/responders/reviewer_checklist_comment_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
before do
@responder.context = OpenStruct.new(issue_id: 5,
issue_author: "opener",
issue_title: "New paper",
repo: "openjournals/buffy",
comment_id: 111222,
issue_body: "Test Submission\n\n ... description ... \n\n" +
Expand All @@ -42,7 +43,7 @@
it "should add user checklist for reviewer" do
@responder.context[:sender] = "reviewer1"

expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "reviewer1" }
expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", issue_title: "New paper", repo: "openjournals/buffy", sender: "reviewer1" }
expected_checklist = "Checklist for @reviewer1 \n[] A"

expect(@responder).to receive(:render_external_template).with("checklist.md", expected_locals).and_return(expected_checklist)
Expand All @@ -54,7 +55,7 @@
it "should be case insensitive for the reviewer's username" do
@responder.context[:sender] = "ReVIEwer1"

expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "ReVIEwer1" }
expected_locals = { issue_id: 5, issue_author: "opener", issue_title: "New paper", bot_name: "botsci", repo: "openjournals/buffy", sender: "ReVIEwer1" }
expected_checklist = "Checklist for @ReVIEwer1 \n[] A"

expect(@responder).to receive(:render_external_template).with("checklist.md", expected_locals).and_return(expected_checklist)
Expand All @@ -75,7 +76,7 @@
before do
@responder.context[:sender] = "reviewer1"

expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "reviewer1" }
expected_locals = { issue_id: 5, issue_author: "opener", issue_title: "New paper", bot_name: "botsci", repo: "openjournals/buffy", sender: "reviewer1" }
expected_checklist = "Checklist for @reviewer1 \n[] A"

expect(@responder).to receive(:render_external_template).with("checklist.md", expected_locals).and_return(expected_checklist)
Expand Down
3 changes: 2 additions & 1 deletion spec/responders/set_value_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
describe "with config option: template_file" do
before do
@responder = subject.new({env: {bot_github_user: "botsci"}}, { name: "version", if_missing: "error", template_file: "version_changed.md"})
@responder.context = OpenStruct.new(issue_id: 5, issue_author: "opener", repo: "openjournals/buffy", sender: "user33")
@responder.context = OpenStruct.new(issue_id: 5, issue_author: "opener", issue_title: "Title!", repo: "openjournals/buffy", sender: "user33")
disable_github_calls_for(@responder)
@msg = "@botsci set v0.0.33-alpha as version"
@responder.match_data = @responder.event_regex.match(@msg)
Expand All @@ -168,6 +168,7 @@
value: "v0.0.33-alpha",
bot_name: "botsci",
issue_author: "opener",
issue_title: "Title!",
issue_id: 5,
match_data_1: "v0.0.33-alpha",
repo: "openjournals/buffy",
Expand Down
3 changes: 2 additions & 1 deletion spec/responders/update_comment_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
before do
@responder.context = OpenStruct.new(issue_id: 5,
issue_author: "opener",
issue_title: "Title test",
sender: "editor33",
repo: "openjournals/buffy",
comment_id: 111222,
Expand All @@ -39,7 +40,7 @@

context "#process_message" do
it "should update original comment" do
expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "editor33" }
expected_locals = { issue_id: 5, issue_author: "opener", issue_title: "Title test", bot_name: "botsci", repo: "openjournals/buffy", sender: "editor33" }
expected_checklist = "Final tasks: \n[ ] A\n[ ] B"

expect(@responder).to receive(:render_external_template).with("final-checklist.md", expected_locals).and_return(expected_checklist)
Expand Down
7 changes: 5 additions & 2 deletions spec/responders/welcome_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,15 @@
@responder = subject.new({env: {bot_github_user: "botsci"}}, { template_file: "test.md", data_from_issue: ["reviewer"] })
@responder.context = OpenStruct.new(issue_id: 5,
issue_author: "opener",
issue_title: "Test paper",
repo: "openjournals/buffy",
sender: "user33",
issue_body: "Test Software Review\n\n<!--reviewer-->@xuanxu<!--end-reviewer-->")
disable_github_calls_for(@responder)
end

it "should populate locals" do
expected_locals = { issue_id: 5, issue_author: "opener", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", "reviewer" => "@xuanxu" }
expected_locals = { issue_id: 5, issue_author: "opener", issue_title: "Test paper", bot_name: "botsci", repo: "openjournals/buffy", sender: "user33", "reviewer" => "@xuanxu" }

expect(@responder).to receive(:respond_external_template).with("test.md", expected_locals)
@responder.process_message("")
Expand Down Expand Up @@ -154,6 +155,7 @@
@responder = subject.new(settings, {external_service: params})
@responder.context = OpenStruct.new(issue_id: 33,
issue_author: "opener",
issue_title: "Test paper",
repo: "openjournals/testing",
sender: "xuanxu",
issue_body: "Test Review\n\n<!--extra-data-->ABC123<!--end-extra-data-->")
Expand All @@ -166,7 +168,7 @@

it "should pass right info to the worker" do
expected_params = { "name" => "test-service", "url" => "http://testing.openjournals.org", "data_from_issue" => ["extra-data"] }
expected_locals = { "extra-data" => "ABC123", "bot_name" => "botsci", "issue_author" => "opener", "issue_id" => 33, "repo" => "openjournals/testing", "sender" => "xuanxu" }
expected_locals = { "extra-data" => "ABC123", "bot_name" => "botsci", "issue_author" => "opener", "issue_title" => "Test paper", "issue_id" => 33, "repo" => "openjournals/testing", "sender" => "xuanxu" }
expect(ExternalServiceWorker).to receive(:perform_async).with(expected_params, expected_locals)
@responder.process_message("")
end
Expand All @@ -177,6 +179,7 @@
@settings = { env: {bot_github_user: "botsci"} }
@context = OpenStruct.new(issue_id: 33,
issue_author: "opener",
issue_title: "Title!",
repo: "openjournals/testing",
sender: "xuanxu",
issue_body: "Test Review\n\n<!--extra-data-->ABC123<!--end-extra-data-->")
Expand Down
5 changes: 3 additions & 2 deletions spec/responders/wrong_command_responder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
@responder = subject.new({env: { bot_github_user: "botsci" }, responders: { help: {} }}, {})
@responder.context = OpenStruct.new(issue_id: 15,
issue_author: "opener",
issue_title: "Test paper",
repo: "tests",
sender: "rev33",
issue_body: "Test Review\n\n ... <!--x-->X<!--end-x-->...")
Expand All @@ -51,7 +52,7 @@

it "should respond with custom template" do
@responder.params = { template_file: "wrong_command.md" }
expected_params = { bot_name: "botsci", issue_author: "opener", issue_id: 15, repo: "tests", sender: "rev33", match_data_1: "blah blah" }
expected_params = { bot_name: "botsci", issue_author: "opener", issue_title: "Test paper", issue_id: 15, repo: "tests", sender: "rev33", match_data_1: "blah blah" }
expect(@responder).to receive(:render_external_template).
with("wrong_command.md", expected_params).
and_return("I don't understand `blah blah`")
Expand All @@ -62,7 +63,7 @@

it "should give precedence to template over custom message" do
@responder.params = { template_file: "wrong_command.md", message: "what?"}
expected_params = { bot_name: "botsci", issue_author: "opener", issue_id: 15, repo: "tests", sender: "rev33", match_data_1: "blah blah" }
expected_params = { bot_name: "botsci", issue_author: "opener", issue_title: "Test paper", issue_id: 15, repo: "tests", sender: "rev33", match_data_1: "blah blah" }
expect(@responder).to receive(:render_external_template).
with("wrong_command.md", expected_params).
and_return("I don't understand `blah blah`")
Expand Down

0 comments on commit 21fa1f6

Please sign in to comment.