From af8c5e73d16c42989599e2f1294fbab6fbdc8da6 Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 14 Apr 2023 09:11:00 +0100 Subject: [PATCH] Add ability to remove merging orgs from the list --- app/controllers/merge_requests_controller.rb | 10 +++++++++- config/routes.rb | 1 + spec/requests/merge_requests_controller_spec.rb | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index a6f5113cb..f749e4d09 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -1,6 +1,6 @@ class MergeRequestsController < ApplicationController before_action :authenticate_user! - before_action :find_resource, only: %i[organisations update_organisations] + before_action :find_resource, only: %i[organisations update_organisations remove_merging_organsiation] def create @merge_request = MergeRequest.create!(merge_request_params) @@ -26,6 +26,14 @@ class MergeRequestsController < ApplicationController end end + def remove_merging_organsiation + MergeRequestOrganisation.find_by(merge_request_organisation_params).destroy + @merge_request.reload + @answer_options = organisations_answer_options + @merging_organisations_list = [@merge_request.requesting_organisation] + @merge_request.merging_organisations + render :organisations + end + private def organisations_answer_options diff --git a/config/routes.rb b/config/routes.rb index a3229068a..91518790b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -127,6 +127,7 @@ Rails.application.routes.draw do post "merge-request", to: "merge_request#create_merge_request" get "organisations", to: "merge_requests#organisations" patch "organisations", to: "merge_requests#update_organisations" + get "organisations/remove", to: "merge_requests#remove_merging_organsiation" end resources :lettings_logs, path: "/lettings-logs" do diff --git a/spec/requests/merge_requests_controller_spec.rb b/spec/requests/merge_requests_controller_spec.rb index 00cadaa00..add8d7dbf 100644 --- a/spec/requests/merge_requests_controller_spec.rb +++ b/spec/requests/merge_requests_controller_spec.rb @@ -93,5 +93,21 @@ RSpec.describe MergeRequestsController, type: :request do end end end + + describe "#remove_organisation" do + let(:params) { { merge_request: {merging_organisation: other_organisation.id } }} + + context "when removing an organisation from merge request " do + before do + MergeRequestOrganisation.create!(merge_request_id: merge_request.id, merging_organisation_id: other_organisation.id) + get "/merge-request/#{merge_request.id}/organisations/remove", headers:, params: + end + + it "updates the merge request" do + expect(merge_request.merging_organisations.count).to eq(0) + expect(page).not_to have_link("Remove") + end + end + end end end