From 5af44001dccf1caada101fecfd9e54c8c4cffb92 Mon Sep 17 00:00:00 2001 From: JG Date: Fri, 27 May 2022 11:45:50 +0100 Subject: [PATCH] handling cases in searches --- app/models/case_log.rb | 6 +++--- spec/factories/case_log.rb | 10 +++++----- spec/models/case_log_spec.rb | 20 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/models/case_log.rb b/app/models/case_log.rb index a7f87cc2c..c852f7829 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -52,9 +52,9 @@ class CaseLog < ApplicationRecord } scope :filter_by_id, ->(id) { where(id:) } - scope :filter_by_tenant_code, ->(code) { where(tenant_code: code) } - scope :filter_by_propcode, ->(code) { where(propcode: code) } - scope :filter_by_postcode, ->(code) { where(postcode_full: code) } + scope :filter_by_tenant_code, ->(code) { where("lower(tenant_code) = ?", code.downcase) } + scope :filter_by_propcode, ->(code) { where("lower(propcode) = ?", code.downcase) } + scope :filter_by_postcode, ->(code) { where(postcode_full: code.upcase.gsub(/\s+/, "")) } scope :search_by, lambda { |param| filter_by_id(param) .or(filter_by_tenant_code(param)) diff --git a/spec/factories/case_log.rb b/spec/factories/case_log.rb index c912282a9..6a315a068 100644 --- a/spec/factories/case_log.rb +++ b/spec/factories/case_log.rb @@ -11,7 +11,7 @@ FactoryBot.define do end trait :in_progress do status { 1 } - tenant_code { Faker::Alphanumeric.alphanumeric(number: 10) } + tenant_code { Faker::Name.initials(number: 10) } postcode_full { Faker::Address.postcode } ppostcode_full { Faker::Address.postcode } age1 { 17 } @@ -24,7 +24,7 @@ FactoryBot.define do incfreq { 1 } end trait :conditional_section_complete do - tenant_code { Faker::Alphanumeric.alphanumeric(number: 10) } + tenant_code { Faker::Name.initials(number: 10) } age1 { 34 } sex1 { "M" } ethnic { 2 } @@ -34,7 +34,7 @@ FactoryBot.define do end trait :completed do status { 2 } - tenant_code { Faker::Alphanumeric.alphanumeric(number: 10) } + tenant_code { Faker::Name.initials(number: 10) } age1 { 35 } sex1 { "F" } ethnic { 2 } @@ -52,7 +52,7 @@ FactoryBot.define do reservist { 0 } illness { 1 } preg_occ { 2 } - tenancy_code { Faker::Alphanumeric.alphanumeric(number: 10) } + tenancy_code { Faker::Name.initials(number: 10) } startertenancy { 0 } tenancylength { 5 } tenancy { 1 } @@ -112,7 +112,7 @@ FactoryBot.define do needstype { 1 } purchaser_code { 798_794 } reason { 4 } - propcode { Faker::Alphanumeric.alphanumeric(number: 10) } + propcode { Faker::Name.initials(number: 10) } majorrepairs { 1 } la { "E09000003" } prevloc { "E07000105" } diff --git a/spec/models/case_log_spec.rb b/spec/models/case_log_spec.rb index 5ed8f28d3..96ee7824f 100644 --- a/spec/models/case_log_spec.rb +++ b/spec/models/case_log_spec.rb @@ -1892,6 +1892,16 @@ RSpec.describe CaseLog do expect(result.count).to eq(1) expect(result.first.id).to eq case_log_to_search.id end + + context "when tenant_code has lower case letters" do + let(:matching_tenant_code_lower_case) { case_log_to_search.tenant_code.downcase } + + it "allows searching by a Tenant Code" do + result = described_class.filter_by_tenant_code(matching_tenant_code_lower_case) + expect(result.count).to eq(1) + expect(result.first.id).to eq case_log_to_search.id + end + end end describe "#filter_by_propcode" do @@ -1900,6 +1910,16 @@ RSpec.describe CaseLog do expect(result.count).to eq(1) expect(result.first.id).to eq case_log_to_search.id end + + context "when propcode has lower case letters" do + let(:matching_propcode_lower_case) { case_log_to_search.propcode.downcase } + + it "allows searching by a Property Reference" do + result = described_class.filter_by_propcode(matching_propcode_lower_case) + expect(result.count).to eq(1) + expect(result.first.id).to eq case_log_to_search.id + end + end end describe "#filter_by_postcode" do