Browse Source

handling cases in searches

pull/608/head
JG 3 years ago
parent
commit
5af44001dc
  1. 6
      app/models/case_log.rb
  2. 10
      spec/factories/case_log.rb
  3. 20
      spec/models/case_log_spec.rb

6
app/models/case_log.rb

@ -52,9 +52,9 @@ class CaseLog < ApplicationRecord
} }
scope :filter_by_id, ->(id) { where(id:) } scope :filter_by_id, ->(id) { where(id:) }
scope :filter_by_tenant_code, ->(code) { where(tenant_code: code) } scope :filter_by_tenant_code, ->(code) { where("lower(tenant_code) = ?", code.downcase) }
scope :filter_by_propcode, ->(code) { where(propcode: code) } scope :filter_by_propcode, ->(code) { where("lower(propcode) = ?", code.downcase) }
scope :filter_by_postcode, ->(code) { where(postcode_full: code) } scope :filter_by_postcode, ->(code) { where(postcode_full: code.upcase.gsub(/\s+/, "")) }
scope :search_by, lambda { |param| scope :search_by, lambda { |param|
filter_by_id(param) filter_by_id(param)
.or(filter_by_tenant_code(param)) .or(filter_by_tenant_code(param))

10
spec/factories/case_log.rb

@ -11,7 +11,7 @@ FactoryBot.define do
end end
trait :in_progress do trait :in_progress do
status { 1 } status { 1 }
tenant_code { Faker::Alphanumeric.alphanumeric(number: 10) } tenant_code { Faker::Name.initials(number: 10) }
postcode_full { Faker::Address.postcode } postcode_full { Faker::Address.postcode }
ppostcode_full { Faker::Address.postcode } ppostcode_full { Faker::Address.postcode }
age1 { 17 } age1 { 17 }
@ -24,7 +24,7 @@ FactoryBot.define do
incfreq { 1 } incfreq { 1 }
end end
trait :conditional_section_complete do trait :conditional_section_complete do
tenant_code { Faker::Alphanumeric.alphanumeric(number: 10) } tenant_code { Faker::Name.initials(number: 10) }
age1 { 34 } age1 { 34 }
sex1 { "M" } sex1 { "M" }
ethnic { 2 } ethnic { 2 }
@ -34,7 +34,7 @@ FactoryBot.define do
end end
trait :completed do trait :completed do
status { 2 } status { 2 }
tenant_code { Faker::Alphanumeric.alphanumeric(number: 10) } tenant_code { Faker::Name.initials(number: 10) }
age1 { 35 } age1 { 35 }
sex1 { "F" } sex1 { "F" }
ethnic { 2 } ethnic { 2 }
@ -52,7 +52,7 @@ FactoryBot.define do
reservist { 0 } reservist { 0 }
illness { 1 } illness { 1 }
preg_occ { 2 } preg_occ { 2 }
tenancy_code { Faker::Alphanumeric.alphanumeric(number: 10) } tenancy_code { Faker::Name.initials(number: 10) }
startertenancy { 0 } startertenancy { 0 }
tenancylength { 5 } tenancylength { 5 }
tenancy { 1 } tenancy { 1 }
@ -112,7 +112,7 @@ FactoryBot.define do
needstype { 1 } needstype { 1 }
purchaser_code { 798_794 } purchaser_code { 798_794 }
reason { 4 } reason { 4 }
propcode { Faker::Alphanumeric.alphanumeric(number: 10) } propcode { Faker::Name.initials(number: 10) }
majorrepairs { 1 } majorrepairs { 1 }
la { "E09000003" } la { "E09000003" }
prevloc { "E07000105" } prevloc { "E07000105" }

20
spec/models/case_log_spec.rb

@ -1892,6 +1892,16 @@ RSpec.describe CaseLog do
expect(result.count).to eq(1) expect(result.count).to eq(1)
expect(result.first.id).to eq case_log_to_search.id expect(result.first.id).to eq case_log_to_search.id
end 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 end
describe "#filter_by_propcode" do describe "#filter_by_propcode" do
@ -1900,6 +1910,16 @@ RSpec.describe CaseLog do
expect(result.count).to eq(1) expect(result.count).to eq(1)
expect(result.first.id).to eq case_log_to_search.id expect(result.first.id).to eq case_log_to_search.id
end 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 end
describe "#filter_by_postcode" do describe "#filter_by_postcode" do

Loading…
Cancel
Save