From 8bde8a881ee5a4ae86d6f207be9bc4262d6f2f8a Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 23 Jun 2022 14:34:22 +0100 Subject: [PATCH] remove the space removal for postcodes as we expect them to be saved without spaces --- app/models/scheme.rb | 2 +- spec/factories/location.rb | 2 +- spec/models/scheme_spec.rb | 7 ------- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/app/models/scheme.rb b/app/models/scheme.rb index 750b1979f..90f027f2f 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -5,7 +5,7 @@ class Scheme < ApplicationRecord scope :search_by_code, ->(code) { where("code ILIKE ?", "%#{code}%") } scope :search_by_service_name, ->(name) { where("service_name ILIKE ?", "%#{name}%") } - scope :search_by_postcode, ->(postcode) { joins(:locations).where("REPLACE(locations.postcode, ' ', '') ILIKE ?", "%#{postcode.delete(' ')}%") } + scope :search_by_postcode, ->(postcode) { joins(:locations).where("locations.postcode ILIKE ?", "%#{postcode.delete(' ')}%") } scope :search_by, ->(param) { search_by_postcode(param).or(search_by_service_name(param)).or(search_by_code(param)).distinct } SCHEME_TYPE = { diff --git a/spec/factories/location.rb b/spec/factories/location.rb index 7afaeb11c..a4ab6fd3d 100644 --- a/spec/factories/location.rb +++ b/spec/factories/location.rb @@ -1,7 +1,7 @@ FactoryBot.define do factory :location do location_code { Faker::Name.initials(number: 10) } - postcode { Faker::Address.postcode } + postcode { Faker::Address.postcode.delete(' ') } address_line1 { Faker::Address.street_name } address_line2 { Faker::Address.city } type_of_unit { Faker::Lorem.word } diff --git a/spec/models/scheme_spec.rb b/spec/models/scheme_spec.rb index 580f42f4d..d6e39ae2e 100644 --- a/spec/models/scheme_spec.rb +++ b/spec/models/scheme_spec.rb @@ -45,13 +45,6 @@ RSpec.describe Scheme, type: :model do expect(described_class.search_by_postcode(location_2.postcode.downcase).count).to eq(1) expect(described_class.search_by_postcode(location_2.postcode.downcase).first.locations.first.postcode).to eq(location_2.postcode) end - - it "returns case search results for postcodes without space" do - expect(described_class.search_by_postcode(location.postcode.delete(" ")).count).to eq(1) - expect(described_class.search_by_postcode(location.postcode.delete(" ")).first.locations.first.postcode).to eq(location.postcode) - expect(described_class.search_by_postcode(location_2.postcode.delete(" ")).count).to eq(1) - expect(described_class.search_by_postcode(location_2.postcode.delete(" ")).first.locations.first.postcode).to eq(location_2.postcode) - end end context "when searching by all searchable fields" do