Files
grecia/spec/system/verification/residence_spec.rb
Javi Martín a79bbac894 Fix invalid postal code message
We were using the word "registered" in English as an equivalent of the
Spanish word "empadronado". However, the term "registered" is very
confusing because it might be understood as being registered in the
CONSUL website.

In the message, we're saying "cannot participate" in order to make the
message consistent with the message regarding the required age.
2021-12-16 23:58:36 +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 "Citizens from this postal code cannot participate"
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