diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index 16a82a8b1..4319d561d 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -123,7 +123,7 @@ private end end - if merge_params[:telephone_number_correct] == "1" + if merge_params[:telephone_number_correct] == "true" merge_params[:new_telephone_number] = nil end @@ -143,12 +143,9 @@ private else @merge_request.errors.add(:telephone_number_correct, :invalid) end - elsif merge_request_params[:telephone_number_correct] == "0" && merge_request_params[:new_telephone_number].blank? - @merge_request.errors.add(:new_telephone_number, :blank) end when "new_organisation_name" @merge_request.errors.add(:new_organisation_name, :blank) if merge_request_params[:new_organisation_name].blank? - @merge_request.errors.add(:new_organisation_name, :invalid) if Organisation.where("lower(name) = ?", merge_request_params[:new_organisation_name]&.downcase).exists? end end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 94e2f6d00..e62b1d39d 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -3,10 +3,18 @@ class MergeRequest < ApplicationRecord has_many :merge_request_organisations belongs_to :absorbing_organisation, class_name: "Organisation", optional: true has_many :merging_organisations, through: :merge_request_organisations, source: :merging_organisation + validate :organisation_name_uniqueness, if: :new_organisation_name + validates :new_telephone_number, presence: true, if: -> { telephone_number_correct == false } STATUS = { "unsubmitted" => 0, "submitted" => 1, }.freeze enum status: STATUS + + def organisation_name_uniqueness + if Organisation.where("lower(name) = ?", new_organisation_name&.downcase).exists? + errors.add(:new_organisation_name, :invalid) + end + end end diff --git a/app/views/merge_requests/confirm_telephone_number.html.erb b/app/views/merge_requests/confirm_telephone_number.html.erb index 9a05ee54e..0c92a4f28 100644 --- a/app/views/merge_requests/confirm_telephone_number.html.erb +++ b/app/views/merge_requests/confirm_telephone_number.html.erb @@ -20,8 +20,8 @@ <% if @merge_request.absorbing_organisation.phone.present? %> <%= f.govuk_radio_buttons_fieldset(:telephone_number_correct, legend: nil) do %> - <%= f.govuk_radio_button :telephone_number_correct, 1, checked: @merge_request.telephone_number_correct?, label: { text: "This telephone number is correct" }, link_errors: true %> - <%= f.govuk_radio_button :telephone_number_correct, 0, checked: @merge_request.new_telephone_number.present?, label: { text: "Enter a new phone number" } do %> + <%= f.govuk_radio_button :telephone_number_correct, true, checked: @merge_request.telephone_number_correct?, label: { text: "This telephone number is correct" }, link_errors: true %> + <%= f.govuk_radio_button :telephone_number_correct, false, checked: @merge_request.new_telephone_number.present?, label: { text: "Enter a new phone number" } do %> <%= f.govuk_text_field :new_telephone_number, label: { text: "Telephone number" }, width: "two-thirds" %> <% end %> <%= f.hidden_field :page, value: "confirm_telephone_number" %> diff --git a/spec/requests/merge_requests_controller_spec.rb b/spec/requests/merge_requests_controller_spec.rb index 935ee1210..3ffe1fe13 100644 --- a/spec/requests/merge_requests_controller_spec.rb +++ b/spec/requests/merge_requests_controller_spec.rb @@ -367,7 +367,7 @@ RSpec.describe MergeRequestsController, type: :request do context "when confirming the number" do let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation, new_absorbing_organisation: true, new_telephone_number: "123") } let(:params) do - { merge_request: { telephone_number_correct: "1", page: "confirm_telephone_number" } } + { merge_request: { telephone_number_correct: true, page: "confirm_telephone_number" } } end let(:request) do @@ -392,7 +392,7 @@ RSpec.describe MergeRequestsController, type: :request do context "when setting new number" do let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation, new_absorbing_organisation: true) } let(:params) do - { merge_request: { telephone_number_correct: "0", new_telephone_number: "123", page: "confirm_telephone_number" } } + { merge_request: { telephone_number_correct: false, new_telephone_number: "123", page: "confirm_telephone_number" } } end let(:request) do @@ -455,7 +455,7 @@ RSpec.describe MergeRequestsController, type: :request do context "when not answering the phone number" do let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation, absorbing_organisation: other_organisation) } let(:params) do - { merge_request: { page: "confirm_telephone_number", telephone_number_correct: "0" } } + { merge_request: { page: "confirm_telephone_number", telephone_number_correct: false } } end let(:request) do patch "/merge-request/#{merge_request.id}", headers:, params: