Browse Source

Remove absorbing org from merging organisations list

pull/2594/head
Kat 2 years ago
parent
commit
7018b87628
  1. 22
      app/controllers/merge_requests_controller.rb
  2. 19
      spec/requests/merge_requests_controller_spec.rb

22
app/controllers/merge_requests_controller.rb

@ -21,12 +21,9 @@ class MergeRequestsController < ApplicationController
validate_response validate_response
if @merge_request.errors.blank? && @merge_request.update(merge_request_params) if @merge_request.errors.blank? && @merge_request.update(merge_request_params)
if page == "merging_organisations" add_merging_organsations if page == "merging_organisations"
new_merging_org_ids = params["merge_request"]["new_merging_org_ids"].split(" ") remove_absorbing_org_from_merging_organisations if page == "absorbing_organisation" && @merge_request.absorbing_organisation_id.present?
new_merging_org_ids.each do |org_id|
MergeRequestOrganisation.create!(merge_request: @merge_request, merging_organisation_id: org_id)
end
end
redirect_to next_page_path redirect_to next_page_path
else else
render previous_template, status: :unprocessable_entity render previous_template, status: :unprocessable_entity
@ -176,4 +173,17 @@ private
parsed_params = CGI.parse(query_params) parsed_params = CGI.parse(query_params)
parsed_params[query_param]&.first parsed_params[query_param]&.first
end end
def add_merging_organsations
new_merging_org_ids = params["merge_request"]["new_merging_org_ids"].split(" ")
new_merging_org_ids.each do |org_id|
MergeRequestOrganisation.create!(merge_request: @merge_request, merging_organisation_id: org_id)
end
end
def remove_absorbing_org_from_merging_organisations
if @merge_request.merge_request_organisations.where(merging_organisation_id: @merge_request.absorbing_organisation_id).exists?
MergeRequestOrganisation.find_by(merge_request: @merge_request, merging_organisation_id: @merge_request.absorbing_organisation_id).destroy!
end
end
end end

19
spec/requests/merge_requests_controller_spec.rb

@ -294,6 +294,25 @@ RSpec.describe MergeRequestsController, type: :request do
expect(page).to have_button("Save changes") expect(page).to have_button("Save changes")
end end
end end
context "when absorbing_organisation_id set to one of the merging organisations" do
let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation) }
let(:params) do
{ merge_request: { absorbing_organisation_id: other_organisation.id, page: "absorbing_organisation" } }
end
let(:request) do
MergeRequestOrganisation.create!(merge_request_id: merge_request.id, merging_organisation_id: other_organisation.id)
patch "/merge-request/#{merge_request.id}", headers:, params:
end
it "removes organisation from merge request organisations" do
request
merge_request.reload
expect(merge_request.merging_organisations.count).to eq(0)
end
end
end end
describe "from merge_date page" do describe "from merge_date page" do

Loading…
Cancel
Save