Allow to Signature works with CustomCensusAPI
- Send new fields to CensusCaller call method to allow use on CustomCensusAPI
This commit is contained in:
@@ -71,7 +71,7 @@ class Signature < ApplicationRecord
|
|||||||
|
|
||||||
def in_census?
|
def in_census?
|
||||||
document_types.detect do |document_type|
|
document_types.detect do |document_type|
|
||||||
response = CensusCaller.new.call(document_type, document_number, nil, nil)
|
response = CensusCaller.new.call(document_type, document_number, date_of_birth, postal_code)
|
||||||
if response.valid?
|
if response.valid?
|
||||||
@census_api_response = response
|
@census_api_response = response
|
||||||
true
|
true
|
||||||
|
|||||||
@@ -76,6 +76,62 @@ describe "Signature sheets" do
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "Create throught all required_fields_to_verify of custom census api" do
|
||||||
|
|
||||||
|
before do
|
||||||
|
Setting["feature.remote_census"] = true
|
||||||
|
Setting["remote_census.request.date_of_birth"] = "some.value"
|
||||||
|
Setting["remote_census.request.postal_code"] = "some.value"
|
||||||
|
access_user_data = "get_habita_datos_response.get_habita_datos_return.datos_habitante.item"
|
||||||
|
access_residence_data = "get_habita_datos_response.get_habita_datos_return.datos_vivienda.item"
|
||||||
|
Setting["remote_census.response.date_of_birth"] = "#{access_user_data}.fecha_nacimiento_string"
|
||||||
|
Setting["remote_census.response.postal_code"] = "#{access_residence_data}.codigo_postal"
|
||||||
|
Setting["remote_census.response.valid"] = access_user_data
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
Setting["feature.remote_census"] = nil
|
||||||
|
Setting["remote_census.request.date_of_birth"] = nil
|
||||||
|
Setting["remote_census.request.postal_code"] = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "Proposal" do
|
||||||
|
proposal = create(:proposal)
|
||||||
|
visit new_admin_signature_sheet_path
|
||||||
|
|
||||||
|
select "Citizen proposal", from: "signature_sheet_signable_type"
|
||||||
|
fill_in "signature_sheet_signable_id", with: proposal.id
|
||||||
|
fill_in "signature_sheet_required_fields_to_verify", with: "12345678Z, 31/12/1980, 28013; 99999999Z, 31/12/1980, 28013"
|
||||||
|
click_button "Create signature sheet"
|
||||||
|
|
||||||
|
expect(page).to have_content "Signature sheet created successfully"
|
||||||
|
|
||||||
|
visit proposal_path(proposal)
|
||||||
|
|
||||||
|
expect(page).to have_content "1 support"
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "Budget Investment" do
|
||||||
|
investment = create(:budget_investment)
|
||||||
|
budget = investment.budget
|
||||||
|
budget.update(phase: "selecting")
|
||||||
|
|
||||||
|
visit new_admin_signature_sheet_path
|
||||||
|
|
||||||
|
select "Investment", from: "signature_sheet_signable_type"
|
||||||
|
fill_in "signature_sheet_signable_id", with: investment.id
|
||||||
|
fill_in "signature_sheet_required_fields_to_verify", with: "12345678Z, 31/12/1980, 28013; 99999999Z, 31/12/1980, 28013"
|
||||||
|
click_button "Create signature sheet"
|
||||||
|
|
||||||
|
expect(page).to have_content "Signature sheet created successfully"
|
||||||
|
|
||||||
|
visit budget_investment_path(budget, investment)
|
||||||
|
|
||||||
|
expect(page).to have_content "1 support"
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
scenario "Errors on create" do
|
scenario "Errors on create" do
|
||||||
visit new_admin_signature_sheet_path
|
visit new_admin_signature_sheet_path
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,71 @@ describe SignatureSheet do
|
|||||||
|
|
||||||
expect(signature_sheet.processed).to eq(true)
|
expect(signature_sheet.processed).to eq(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "with remote census active" do
|
||||||
|
|
||||||
|
before do
|
||||||
|
Setting["feature.remote_census"] = true
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
Setting["feature.remote_census"] = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it "creates signatures for each group with document_number" do
|
||||||
|
required_fields_to_verify = "123A; 456B"
|
||||||
|
signature_sheet = create(:signature_sheet, required_fields_to_verify: required_fields_to_verify)
|
||||||
|
signature_sheet.verify_signatures
|
||||||
|
|
||||||
|
expect(Signature.count).to eq(2)
|
||||||
|
expect(Signature.first.document_number).to eq("123A")
|
||||||
|
expect(Signature.first.date_of_birth).to eq(nil)
|
||||||
|
expect(Signature.first.postal_code).to eq(nil)
|
||||||
|
expect(Signature.last.document_number).to eq("456B")
|
||||||
|
expect(Signature.last.date_of_birth).to eq(nil)
|
||||||
|
expect(Signature.last.postal_code).to eq(nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "creates signatures for each group with document_number and date_of_birth" do
|
||||||
|
Setting["remote_census.request.date_of_birth"] = "some.value"
|
||||||
|
|
||||||
|
required_fields_to_verify = "123A, 01/01/1980; 456B, 01/02/1980"
|
||||||
|
signature_sheet = create(:signature_sheet, required_fields_to_verify: required_fields_to_verify)
|
||||||
|
signature_sheet.verify_signatures
|
||||||
|
|
||||||
|
expect(Signature.count).to eq(2)
|
||||||
|
expect(Signature.first.document_number).to eq("123A")
|
||||||
|
expect(Signature.first.date_of_birth).to eq(Date.parse("01/01/1980"))
|
||||||
|
expect(Signature.first.postal_code).to eq(nil)
|
||||||
|
expect(Signature.last.document_number).to eq("456B")
|
||||||
|
expect(Signature.last.date_of_birth).to eq(Date.parse("01/02/1980"))
|
||||||
|
expect(Signature.last.postal_code).to eq(nil)
|
||||||
|
|
||||||
|
Setting["remote_census.request.date_of_birth"] = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it "creates signatures for each group with document_number, postal_code and date_of_birth" do
|
||||||
|
Setting["remote_census.request.date_of_birth"] = "some.value"
|
||||||
|
Setting["remote_census.request.postal_code"] = "some.value"
|
||||||
|
|
||||||
|
required_fields_to_verify = "123A, 01/01/1980, 28001; 456B, 01/02/1980, 28002"
|
||||||
|
signature_sheet = create(:signature_sheet, required_fields_to_verify: required_fields_to_verify)
|
||||||
|
signature_sheet.verify_signatures
|
||||||
|
|
||||||
|
expect(Signature.count).to eq(2)
|
||||||
|
expect(Signature.first.document_number).to eq("123A")
|
||||||
|
expect(Signature.first.date_of_birth).to eq(Date.parse("01/01/1980"))
|
||||||
|
expect(Signature.first.postal_code).to eq("28001")
|
||||||
|
expect(Signature.last.document_number).to eq("456B")
|
||||||
|
expect(Signature.last.date_of_birth).to eq(Date.parse("01/02/1980"))
|
||||||
|
expect(Signature.last.postal_code).to eq("28002")
|
||||||
|
|
||||||
|
Setting["remote_census.request.date_of_birth"] = nil
|
||||||
|
Setting["remote_census.request.postal_code"] = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#parsed_required_fields_to_verify" do
|
describe "#parsed_required_fields_to_verify" do
|
||||||
|
|||||||
@@ -242,6 +242,37 @@ describe Signature do
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "document in census throught CustomCensusApi" do
|
||||||
|
|
||||||
|
before do
|
||||||
|
Setting["feature.remote_census"] = true
|
||||||
|
Setting["remote_census.request.date_of_birth"] = "some.value"
|
||||||
|
Setting["remote_census.request.postal_code"] = "some.value"
|
||||||
|
access_user_data = "get_habita_datos_response.get_habita_datos_return.datos_habitante.item"
|
||||||
|
access_residence_data = "get_habita_datos_response.get_habita_datos_return.datos_vivienda.item"
|
||||||
|
Setting["remote_census.response.date_of_birth"] = "#{access_user_data}.fecha_nacimiento_string"
|
||||||
|
Setting["remote_census.response.postal_code"] = "#{access_residence_data}.codigo_postal"
|
||||||
|
Setting["remote_census.response.valid"] = access_user_data
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
Setting["feature.remote_census"] = nil
|
||||||
|
Setting["remote_census.request.date_of_birth"] = nil
|
||||||
|
Setting["remote_census.request.postal_code"] = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it "calls assign_vote_to_user" do
|
||||||
|
signature = create(:signature, document_number: "12345678Z",
|
||||||
|
date_of_birth: "31/12/1980",
|
||||||
|
postal_code: "28013")
|
||||||
|
|
||||||
|
expect_any_instance_of(Signature).to receive(:assign_vote_to_user).exactly(1).times
|
||||||
|
|
||||||
|
signature.verify
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
describe "document not in census" do
|
describe "document not in census" do
|
||||||
|
|
||||||
it "does not call assign_vote_to_user" do
|
it "does not call assign_vote_to_user" do
|
||||||
|
|||||||
Reference in New Issue
Block a user