Skip to content

Commit

Permalink
[ci] Introduces a spec for modify_review
Browse files Browse the repository at this point in the history
  • Loading branch information
hennevogel committed May 5, 2017
1 parent 2cb8897 commit 86e80cc
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions src/api/spec/controllers/webui/request_controller_spec.rb
Expand Up @@ -3,6 +3,7 @@
RSpec.describe Webui::RequestController, vcr: true do
let(:submitter) { create(:confirmed_user, login: 'kugelblitz' ) }
let(:receiver) { create(:confirmed_user, login: 'titan' ) }
let(:reviewer) { create(:confirmed_user, login: 'klasnic' ) }
let(:target_project) { receiver.home_project }
let(:target_package) { create(:package, name: 'goal', project_id: target_project.id) }
let(:source_project) { submitter.home_project }
Expand All @@ -16,6 +17,14 @@
source_package: source_package.name,
bs_request_id: bs_request.id)
end
let(:request_with_review) do
create(:review_bs_request,
reviewer: reviewer,
target_project: target_project.name,
target_package: target_package.name,
source_project: source_project.name,
source_package: source_package.name)
end

it { is_expected.to use_before_action(:require_login) }
it { is_expected.to use_before_action(:require_request) }
Expand Down Expand Up @@ -98,6 +107,62 @@
end
end

describe "POST #modify_review" do
before do
login(reviewer)
end

context "with valid parameters" do
before do
post :modify_review, params: { review_comment_0: "yeah",
review_request_number_0: request_with_review.number,
review_by_user_0: reviewer,
accepted: 'Approve' }
end

it { expect(response).to redirect_to(request_show_path(number: request_with_review.number)) }
it { expect(request_with_review.reload.reviews.last.state).to eq(:accepted) }
end

context "with invalid parameters" do
it 'without request' do
post :modify_review, params: { review_comment_0: "yeah",
review_request_number_0: 1899,
review_by_user_0: reviewer,
accepted: "Approve"}
expect(flash[:error]).to eq('Unable to load request')
expect(request_with_review.reload.reviews.last.state).to eq(:new)
expect(request_with_review.reload.state).to eq(:review)
end
it 'without state' do
post :modify_review, params: { review_comment_0: "yeah",
review_request_number_0: request_with_review.number,
review_by_user_0: reviewer}
expect(flash[:error]).to eq('Unknown state to set')
expect(request_with_review.reload.reviews.last.state).to eq(:new)
expect(request_with_review.reload.state).to eq(:review)
end
it "without permissions" do
post :modify_review, params: { review_comment_0: "yeah",
review_request_number_0: request_with_review.number,
review_by_user_0: submitter,
accepted: 'Approve' }
expect(flash[:error]).to eq("Not permitted to change review state: review state change is not permitted for #{reviewer.login}")
expect(request_with_review.reload.reviews.last.state).to eq(:new)
expect(request_with_review.reload.state).to eq(:review)
end
it "with invalid transition" do
request_with_review.update_attributes(state: 'declined')
post :modify_review, params: { review_comment_0: "yeah",
review_request_number_0: request_with_review.number,
review_by_user_0: reviewer,
accepted: 'Approve' }
expect(flash[:error]).to eq("Not permitted to change review state: The request is neither in state review nor new")
expect(request_with_review.reload.state).to eq(:declined)
end
end
end

describe "POST #change_devel_request" do
context "with valid parameters" do
before do
Expand Down

0 comments on commit 86e80cc

Please sign in to comment.