Browse Source

Add error to postcode for LA validation

pull/489/head
baarkerlounger 3 years ago
parent
commit
f4de4e35a3
  1. 2
      app/models/validations/local_authority_validations.rb
  2. 1
      config/locales/en.yml
  3. 27
      spec/models/validations/local_authority_validations_spec.rb

2
app/models/validations/local_authority_validations.rb

@ -18,7 +18,9 @@ module Validations::LocalAuthorityValidations
record.la && !record.owning_organisation.local_authorities.include?(record.la) record.la && !record.owning_organisation.local_authorities.include?(record.la)
la_name = record.form.get_question("la", record).label_from_value(record.la) la_name = record.form.get_question("la", record).label_from_value(record.la)
org_name = record.owning_organisation.name org_name = record.owning_organisation.name
postcode = record.postcode_full
record.errors.add :la, I18n.t("validations.property.la.la_invalid_for_org", org_name:, la_name:) record.errors.add :la, I18n.t("validations.property.la.la_invalid_for_org", org_name:, la_name:)
record.errors.add :postcode_known, I18n.t("validations.property.la.postcode_invalid_for_org", org_name:, postcode:)
end end
end end
end end

1
config/locales/en.yml

@ -69,6 +69,7 @@ en:
la: la:
la_known: "Enter name of local authority" la_known: "Enter name of local authority"
la_invalid_for_org: "%{org_name} does not operate in %{la_name}" la_invalid_for_org: "%{org_name} does not operate in %{la_name}"
postcode_invalid_for_org: "%{org_name} does not operate in %{postcode}"
rsnvac: rsnvac:
first_let_not_social: "Reason for vacancy cannot be first let if unit has been previously let as social housing" first_let_not_social: "Reason for vacancy cannot be first let if unit has been previously let as social housing"
first_let_social: "Reason for vacancy must be first let if unit has been previously let as social housing" first_let_social: "Reason for vacancy must be first let if unit has been previously let as social housing"

27
spec/models/validations/local_authority_validations_spec.rb

@ -37,15 +37,6 @@ RSpec.describe Validations::LocalAuthorityValidations do
end end
describe "#validate_la" do describe "#validate_la" do
context "when the rent type is London affordable" do
it "expects that the local authority is in London" do
record.la = "E09000033"
record.rent_type = 2
local_auth_validator.validate_la(record)
expect(record.errors["la"]).to be_empty
end
end
context "when previous la is known" do context "when previous la is known" do
it "la has to be provided" do it "la has to be provided" do
record.la_known = 1 record.la_known = 1
@ -80,6 +71,24 @@ RSpec.describe Validations::LocalAuthorityValidations do
local_auth_validator.validate_la(record) local_auth_validator.validate_la(record)
expect(record.errors["la"]).to be_empty expect(record.errors["la"]).to be_empty
end end
context "when a postcode is given" do
before do
stub_request(:get, /api.postcodes.io/)
.to_return(status: 200, body: "{\"status\":200,\"result\":{\"admin_district\":\"York\",\"codes\":{\"admin_district\": \"E06000014\"}}}", headers: {})
end
it "validates that it matches a local authority the organisation operates in" do
record.postcode_full = "YO10 3RR"
record.save
expect(record.errors["postcode_known"])
.to include(match I18n.t(
"validations.property.la.postcode_invalid_for_org",
org_name: organisation.name,
postcode: "YO103RR",
))
end
end
end end
context "when the organisation has not listed specific local authorities it operates in" do context "when the organisation has not listed specific local authorities it operates in" do

Loading…
Cancel
Save