Files
nairobi/spec/system/verification/residence_spec.rb
Javi Martín c2e95f6b86 Allow any postal code by default
Due to the way Madrid handled postal code validations (see issue 533),
by default we were requiring everyone to validate against the local
census *and* to specify valid postal codes.

This could be useful in some cases, but in other cases, the census
validation will be enough and there'll be no need to manually define the
valid postal codes. Besides, some CONSUL installations are used in
organizations or political parties where the postal code validation
doesn't make sense.
2021-12-16 13:57:00 +01:00

163 lines
5.1 KiB
Ruby

require "rails_helper"
describe "Residence" do
before { create(:geozone) }
scenario "Verify resident" do
user = create(:user)
login_as(user)
visit account_path
click_link "Verify my account"
fill_in "residence_document_number", with: "12345678Z"
select "DNI", from: "residence_document_type"
select_date "31-December-1980", from: "residence_date_of_birth"
fill_in "residence_postal_code", with: "28013"
check "residence_terms_of_service"
click_button "Verify residence"
expect(page).to have_content "Residence verified"
end
scenario "Verify resident throught RemoteCensusApi", :remote_census do
user = create(:user)
login_as(user)
mock_valid_remote_census_response
visit account_path
click_link "Verify my account"
fill_in "residence_document_number", with: "12345678Z"
select "DNI", from: "residence_document_type"
select_date "31-December-1980", from: "residence_date_of_birth"
fill_in "residence_postal_code", with: "28013"
check "residence_terms_of_service"
click_button "Verify residence"
expect(page).to have_content "Residence verified"
end
scenario "Residence form use min age to participate" do
min_age = (Setting["min_age_to_participate"] = 16).to_i
underage = min_age - 1
user = create(:user)
login_as(user)
visit account_path
click_link "Verify my account"
expect(page).to have_select("residence_date_of_birth_1i",
with_options: [min_age.years.ago.year])
expect(page).not_to have_select("residence_date_of_birth_1i",
with_options: [underage.years.ago.year])
end
scenario "When trying to verify a deregistered account old votes are reassigned" do
erased_user = create(:user, document_number: "12345678Z", document_type: "1", erased_at: Time.current)
vote = create(:vote, voter: erased_user)
new_user = create(:user)
login_as(new_user)
visit account_path
click_link "Verify my account"
fill_in "residence_document_number", with: "12345678Z"
select "DNI", from: "residence_document_type"
select_date "31-December-1980", from: "residence_date_of_birth"
fill_in "residence_postal_code", with: "28013"
check "residence_terms_of_service"
click_button "Verify residence"
expect(page).to have_content "Residence verified"
expect(vote.reload.voter).to eq(new_user)
expect(erased_user.reload.document_number).to be_blank
expect(new_user.reload.document_number).to eq("12345678Z")
end
scenario "Error on verify" do
user = create(:user)
login_as(user)
visit account_path
click_link "Verify my account"
click_button "Verify residence"
expect(page).to have_content(/\d errors? prevented the verification of your residence/)
end
scenario "Error on postal code not in census" do
Setting["postal_codes"] = "00001:99999"
user = create(:user)
login_as(user)
visit account_path
click_link "Verify my account"
fill_in "residence_document_number", with: "12345678Z"
select "DNI", from: "residence_document_type"
select "1997", from: "residence_date_of_birth_1i"
select "January", from: "residence_date_of_birth_2i"
select "1", from: "residence_date_of_birth_3i"
fill_in "residence_postal_code", with: "00000"
check "residence_terms_of_service"
click_button "Verify residence"
expect(page).to have_content "In order to be verified, you must be registered"
end
scenario "Error on census" do
user = create(:user)
login_as(user)
visit account_path
click_link "Verify my account"
fill_in "residence_document_number", with: "12345678Z"
select "DNI", from: "residence_document_type"
select "1997", from: "residence_date_of_birth_1i"
select "January", from: "residence_date_of_birth_2i"
select "1", from: "residence_date_of_birth_3i"
fill_in "residence_postal_code", with: "28013"
check "residence_terms_of_service"
click_button "Verify residence"
expect(page).to have_content "The Census was unable to verify your information"
end
scenario "5 tries allowed" do
user = create(:user)
login_as(user)
visit account_path
click_link "Verify my account"
5.times do
fill_in "residence_document_number", with: "12345678Z"
select "DNI", from: "residence_document_type"
select "1997", from: "residence_date_of_birth_1i"
select "January", from: "residence_date_of_birth_2i"
select "1", from: "residence_date_of_birth_3i"
fill_in "residence_postal_code", with: "28013"
check "residence_terms_of_service"
click_button "Verify residence"
expect(page).to have_content "The Census was unable to verify your information"
end
click_button "Verify residence"
expect(page).to have_content "You have reached the maximum number of attempts. Please try again later."
expect(page).to have_current_path(account_path)
visit new_residence_path
expect(page).to have_content "You have reached the maximum number of attempts. Please try again later."
expect(page).to have_current_path(account_path)
end
end