From d1587ecc6202b3eeb98e8a974a88095c80b7e732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sen=C3=A9n=20Rodero=20Rodr=C3=ADguez?= Date: Thu, 23 May 2019 12:51:16 +0200 Subject: [PATCH] Add sanitization to clear trailing whitespaces --- app/models/local_census_record.rb | 10 ++++++++++ spec/models/local_census_record_spec.rb | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/app/models/local_census_record.rb b/app/models/local_census_record.rb index 12e4d2795..29c93493b 100644 --- a/app/models/local_census_record.rb +++ b/app/models/local_census_record.rb @@ -1,8 +1,18 @@ class LocalCensusRecord < ApplicationRecord + before_validation :sanitize + validates :document_number, presence: true validates :document_type, presence: true validates :date_of_birth, presence: true validates :postal_code, presence: true scope :search, -> (terms) { where("document_number ILIKE ?", "%#{terms}%") } + + private + + def sanitize + self.document_type = self.document_type&.strip + self.document_number = self.document_number&.strip + self.postal_code = self.postal_code&.strip + end end diff --git a/spec/models/local_census_record_spec.rb b/spec/models/local_census_record_spec.rb index ef64ef19e..1870acf12 100644 --- a/spec/models/local_census_record_spec.rb +++ b/spec/models/local_census_record_spec.rb @@ -31,6 +31,18 @@ describe LocalCensusRecord do expect(local_census_record).not_to be_valid end + + it "sanitizes text attributes values before validation" do + local_census_record.document_type = " DNI " + local_census_record.document_number = " #DOCUMENT_NUMBER " + local_census_record.postal_code = " 07007 " + + local_census_record.valid? + + expect(local_census_record.document_type).to eq "DNI" + expect(local_census_record.document_number).to eq "#DOCUMENT_NUMBER" + expect(local_census_record.postal_code).to eq "07007" + end end context "scopes" do