Allow dashes in postal codes

In some countries, postal codes are defined with a dash in the middle,
so we're using a colon to define ranges instead. We could also use two
dots, like in Ruby ranges, but IMHO this would cause typos since people
would enter codes separated with three dots or just one dot.
This commit is contained in:
Javi Martín
2021-11-14 15:44:11 +01:00
parent b8b4336266
commit 5cc10cbadf
5 changed files with 15 additions and 4 deletions

View File

@@ -49,7 +49,7 @@ describe Verification::Residence do
describe "postal code" do
before do
Setting["postal_codes"] = "28001-28100,28200"
Setting["postal_codes"] = "28001:28100,28200,28303-455"
census_data = double(valid?: true, district_code: "", gender: "")
allow(census_data).to receive(:postal_code) { residence.postal_code }
@@ -69,6 +69,9 @@ describe Verification::Residence do
residence.postal_code = "28200"
expect(residence).to be_valid
residence.postal_code = "28303-455"
expect(residence).to be_valid
end
it "uses string ranges and not integer ranges" do
@@ -102,6 +105,12 @@ describe Verification::Residence do
residence.postal_code = "28000"
expect(residence).not_to be_valid
residence.postal_code = "28303-454"
expect(residence).not_to be_valid
residence.postal_code = "28303"
expect(residence).not_to be_valid
residence.postal_code = "28101"
expect(residence).not_to be_valid
expect(residence.errors.count).to eq 1