Browse Source

remove the space removal for postcodes as we expect them to be saved without spaces

pull/691/head
Kat 3 years ago
parent
commit
8bde8a881e
  1. 2
      app/models/scheme.rb
  2. 2
      spec/factories/location.rb
  3. 7
      spec/models/scheme_spec.rb

2
app/models/scheme.rb

@ -5,7 +5,7 @@ class Scheme < ApplicationRecord
scope :search_by_code, ->(code) { where("code ILIKE ?", "%#{code}%") } scope :search_by_code, ->(code) { where("code ILIKE ?", "%#{code}%") }
scope :search_by_service_name, ->(name) { where("service_name ILIKE ?", "%#{name}%") } 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 } scope :search_by, ->(param) { search_by_postcode(param).or(search_by_service_name(param)).or(search_by_code(param)).distinct }
SCHEME_TYPE = { SCHEME_TYPE = {

2
spec/factories/location.rb

@ -1,7 +1,7 @@
FactoryBot.define do FactoryBot.define do
factory :location do factory :location do
location_code { Faker::Name.initials(number: 10) } location_code { Faker::Name.initials(number: 10) }
postcode { Faker::Address.postcode } postcode { Faker::Address.postcode.delete(' ') }
address_line1 { Faker::Address.street_name } address_line1 { Faker::Address.street_name }
address_line2 { Faker::Address.city } address_line2 { Faker::Address.city }
type_of_unit { Faker::Lorem.word } type_of_unit { Faker::Lorem.word }

7
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).count).to eq(1)
expect(described_class.search_by_postcode(location_2.postcode.downcase).first.locations.first.postcode).to eq(location_2.postcode) expect(described_class.search_by_postcode(location_2.postcode.downcase).first.locations.first.postcode).to eq(location_2.postcode)
end 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 end
context "when searching by all searchable fields" do context "when searching by all searchable fields" do

Loading…
Cancel
Save