diff --git a/app/models/organisation.rb b/app/models/organisation.rb index 7970c7c37..a119b52f7 100644 --- a/app/models/organisation.rb +++ b/app/models/organisation.rb @@ -12,6 +12,8 @@ class Organisation < ApplicationRecord has_paper_trail + before_validation :strip_whitespace + PROVIDER_TYPE = { LA: 1, PRP: 2, @@ -74,4 +76,8 @@ class Organisation < ApplicationRecord { name: "data_protection_agreement", value: data_protection_agreement_string, editable: false }, ] end + + def strip_whitespace + self.name = name.strip unless name.nil? + end end diff --git a/app/models/scheme.rb b/app/models/scheme.rb index 727388fae..0c05fa8a3 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -19,6 +19,8 @@ class Scheme < ApplicationRecord validate :validate_confirmed + before_validation :strip_whitespace + SENSITIVE = { No: 0, Yes: 1, @@ -228,4 +230,8 @@ class Scheme < ApplicationRecord end end end + + def strip_whitespace + self.service_name = service_name.strip unless service_name.nil? + end end diff --git a/app/models/user.rb b/app/models/user.rb index ee1a2fb5f..c9404d5e2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -27,6 +27,8 @@ class User < ApplicationRecord has_one_time_password(encrypted: true) + before_validation :strip_whitespace + ROLES = { data_provider: 1, data_coordinator: 2, @@ -165,4 +167,8 @@ private end end end + + def strip_whitespace + self.name = name.strip unless name.nil? + end end diff --git a/spec/requests/organisations_controller_spec.rb b/spec/requests/organisations_controller_spec.rb index 0498209f9..c467cd585 100644 --- a/spec/requests/organisations_controller_spec.rb +++ b/spec/requests/organisations_controller_spec.rb @@ -962,7 +962,7 @@ RSpec.describe OrganisationsController, type: :request do end describe "#create" do - let(:name) { "Unique new org name" } + let(:name) { " Unique new org name" } let(:address_line1) { "12 Random Street" } let(:address_line2) { "Manchester" } let(:postcode) { "MD1 5TR" } @@ -993,7 +993,7 @@ RSpec.describe OrganisationsController, type: :request do it "sets the organisation attributes correctly" do request organisation = Organisation.find_by(housing_registration_no:) - expect(organisation.name).to eq(name) + expect(organisation.name).to eq("Unique new org name") expect(organisation.address_line1).to eq(address_line1) expect(organisation.address_line2).to eq(address_line2) expect(organisation.postcode).to eq(postcode) diff --git a/spec/requests/schemes_controller_spec.rb b/spec/requests/schemes_controller_spec.rb index fe133253f..a5c0b6e4f 100644 --- a/spec/requests/schemes_controller_spec.rb +++ b/spec/requests/schemes_controller_spec.rb @@ -346,7 +346,7 @@ RSpec.describe SchemesController, type: :request do context "when signed in as a data coordinator" do let(:user) { FactoryBot.create(:user, :data_coordinator) } let(:params) do - { scheme: { service_name: "testy", + { scheme: { service_name: " testy ", sensitive: "1", scheme_type: "Foyer", registered_under_care_act: "No", diff --git a/spec/requests/users_controller_spec.rb b/spec/requests/users_controller_spec.rb index a99d1e6c3..c5303776a 100644 --- a/spec/requests/users_controller_spec.rb +++ b/spec/requests/users_controller_spec.rb @@ -841,7 +841,7 @@ RSpec.describe UsersController, type: :request do let(:params) do { "user": { - name: "new user", + name: "new user ", email: "new_user@example.com", role: "data_coordinator", }, @@ -850,7 +850,7 @@ RSpec.describe UsersController, type: :request do let(:personalisation) do { - name: params[:user][:name], + name: "new user", email: params[:user][:email], organisation: user.organisation.name, link: include("/account/confirmation?confirmation_token="), @@ -871,6 +871,14 @@ RSpec.describe UsersController, type: :request do request end + it "creates a new scheme for user organisation with valid params" do + request + + expect(User.last.name).to eq("new user") + expect(User.last.email).to eq("new_user@example.com") + expect(User.last.role).to eq("data_coordinator") + end + it "redirects back to organisation users page" do request expect(response).to redirect_to("/organisations/#{user.organisation.id}/users")