Browse Source

Normalise the postcodes

pull/421/head
Kat 3 years ago
parent
commit
2d4e346844
  1. 2
      app/models/case_log.rb
  2. 2
      spec/fixtures/exports/case_logs.xml
  3. 45
      spec/models/case_log_spec.rb

2
app/models/case_log.rb

@ -397,10 +397,12 @@ private
end
def process_postcode_changes!
self.postcode_full = postcode_full.present? ? postcode_full.upcase.gsub(/\s+/, "") : postcode_full
process_postcode(postcode_full, "postcode_known", "is_la_inferred", "la", "postcode", "postcod2")
end
def process_previous_postcode_changes!
self.ppostcode_full = ppostcode_full.present? ? ppostcode_full.upcase.gsub(/\s+/, "") : ppostcode_full
process_postcode(ppostcode_full, "previous_postcode_known", "is_previous_la_inferred", "prevloc", "ppostc1", "ppostc2")
end

2
spec/fixtures/exports/case_logs.xml vendored

@ -166,11 +166,11 @@
<wsupchrg>17.5</wsupchrg>
<wtcharge>162.5</wtcharge>
<wtshortfall>6.0</wtshortfall>
<refused>0</refused>
<housingneeds>1</housingneeds>
<vday>3</vday>
<vmonth>11</vmonth>
<vyear>2019</vyear>
<wchchrg/>
<refused>0</refused>
</form>
</forms>

45
spec/models/case_log_spec.rb

@ -1134,6 +1134,15 @@ RSpec.describe CaseLog do
end
end
def check_postcode_fields(postcode_field, outcode_field, incode_field)
record_from_db = ActiveRecord::Base.connection.execute("select #{postcode_field}, #{outcode_field}, #{incode_field} from case_logs where id=#{address_case_log.id}").to_a[0]
expect(address_case_log[postcode_field]).to eq("M11AE")
expect(record_from_db[postcode_field]).to eq("M11AE")
expect(address_case_log[outcode_field]).to eq("M1")
expect(record_from_db[outcode_field]).to eq("M1")
expect(address_case_log[incode_field]).to eq("1AE")
expect(record_from_db[incode_field]).to eq("1AE")
end
context "when saving addresses" do
before do
stub_request(:get, /api.postcodes.io/)
@ -1149,6 +1158,24 @@ RSpec.describe CaseLog do
})
end
def check_property_postcode_fields
check_postcode_fields("postcode_full", "postcode", "postcod2")
end
it "correctly formats previous postcode" do
address_case_log.update!(postcode_full: "M1 1AE")
check_property_postcode_fields
address_case_log.update!(postcode_full: "m1 1ae")
check_property_postcode_fields
address_case_log.update!(postcode_full: "m11Ae")
check_property_postcode_fields
address_case_log.update!(postcode_full: "m11ae")
check_property_postcode_fields
end
it "correctly infers la" do
record_from_db = ActiveRecord::Base.connection.execute("select la from case_logs where id=#{address_case_log.id}").to_a[0]
expect(address_case_log.la).to eq("E08000003")
@ -1218,6 +1245,24 @@ RSpec.describe CaseLog do
})
end
def check_previous_postcode_fields
check_postcode_fields("ppostcode_full", "ppostc1", "ppostc2")
end
it "correctly formats previous postcode" do
address_case_log.update!(ppostcode_full: "M1 1AE")
check_previous_postcode_fields
address_case_log.update!(ppostcode_full: "m1 1ae")
check_previous_postcode_fields
address_case_log.update!(ppostcode_full: "m11Ae")
check_previous_postcode_fields
address_case_log.update!(ppostcode_full: "m11ae")
check_previous_postcode_fields
end
it "correctly infers prevloc" do
record_from_db = ActiveRecord::Base.connection.execute("select prevloc from case_logs where id=#{address_case_log.id}").to_a[0]
expect(address_case_log.prevloc).to eq("E08000003")

Loading…
Cancel
Save