From ba11f9f67ec972bad607b069b2e3184a1e97ce24 Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Sun, 24 Mar 2019 19:42:33 +0500 Subject: [PATCH] Strip extra spaces --- app/models/account.rb | 6 ++++++ spec/models/account_spec.rb | 24 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/app/models/account.rb b/app/models/account.rb index ce800ff..5ff1ca7 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -51,6 +51,7 @@ class Account < ApplicationRecord after_initialize :generate_username before_validation :turn_blanks_into_nils + before_validation :strip_extra_spaces before_create :generate_guest_token @@ -123,4 +124,9 @@ private self.public_name = nil if public_name.blank? self.biography = nil if biography.blank? end + + def strip_extra_spaces + self.public_name = public_name&.strip + self.biography = biography&.strip + end end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index dce8b6c..12b23db 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -115,6 +115,18 @@ RSpec.describe Account do expect(subject.public_name).to eq nil end end + + context 'when it was set to value with leading and trailing spaces' do + subject { create :personal_account, public_name: public_name } + + let :public_name do + "#{' ' * rand(4)}#{Faker::Name.name}#{' ' * rand(4)}" + end + + specify do + expect(subject.public_name).to eq public_name.strip + end + end end describe '#biography' do @@ -140,6 +152,18 @@ RSpec.describe Account do expect(subject.biography).to eq nil end end + + context 'when it was set to value with leading and trailing spaces' do + subject { create :personal_account, biography: biography } + + let :biography do + "#{' ' * rand(4)}#{Faker::Lorem.sentence}#{' ' * rand(4)}" + end + + specify do + expect(subject.biography).to eq biography.strip + end + end end describe '#has_role?' do