Browse Source

Add existing organisation name validation

pull/1598/head
Kat 3 years ago
parent
commit
fa885d9cc0
  1. 2
      app/controllers/merge_requests_controller.rb
  2. 1
      config/locales/en.yml
  3. 23
      spec/requests/merge_requests_controller_spec.rb

2
app/controllers/merge_requests_controller.rb

@ -150,6 +150,8 @@ private
when "new_organisation_name"
if merge_request_params[:new_organisation_name].blank?
@merge_request.errors.add(:new_organisation_name, I18n.t("validations.merge_request.new_organisation_name_blank"))
elsif Organisation.where("lower(name) = ?", merge_request_params[:new_organisation_name].downcase).exists?
@merge_request.errors.add(:new_organisation_name, I18n.t("validations.merge_request.new_organisation_name_exists"))
end
end
end

1
config/locales/en.yml

@ -519,6 +519,7 @@ en:
telephone_number_correct_blank: Select to confirm or enter a new telephone number
new_telephone_number_blank: Enter a valid telephone number
new_organisation_name_blank: "Enter an organisation name"
new_organisation_name_exists: "An organisation with this name already exists"
soft_validations:
net_income:

23
spec/requests/merge_requests_controller_spec.rb

@ -529,6 +529,29 @@ RSpec.describe MergeRequestsController, type: :request do
expect { request }.not_to(change { merge_request.reload.attributes })
end
end
context "when the new organisation name already exists" do
before do
create(:organisation, name: "new org name")
end
let(:params) do
{ merge_request: { new_organisation_name: "New org name", page: "new_organisation_name" } }
end
let(:request) do
patch "/merge-request/#{merge_request.id}", headers:, params:
end
it "renders the error" do
request
expect(page).to have_content("An organisation with this name already exists")
end
it "does not update the organisation name" do
expect { request }.not_to(change { merge_request.reload.attributes })
end
end
end
end
end

Loading…
Cancel
Save