Allow to Management::Document works with CustomCensusAPI
- Allow receive new fields :date_of_birth and :postal_code - Send new fields to CensusCaller call method to allow use on RemoteCensusAPI
This commit is contained in:
@@ -2,8 +2,7 @@ class Verification::Management::Document
|
|||||||
include ActiveModel::Model
|
include ActiveModel::Model
|
||||||
include ActiveModel::Dates
|
include ActiveModel::Dates
|
||||||
|
|
||||||
attr_accessor :document_type
|
attr_accessor :document_type, :document_number, :date_of_birth, :postal_code
|
||||||
attr_accessor :document_number
|
|
||||||
|
|
||||||
validates :document_type, :document_number, presence: true
|
validates :document_type, :document_number, presence: true
|
||||||
|
|
||||||
@@ -18,7 +17,7 @@ class Verification::Management::Document
|
|||||||
end
|
end
|
||||||
|
|
||||||
def in_census?
|
def in_census?
|
||||||
response = CensusCaller.new.call(document_type, document_number, nil, nil)
|
response = CensusCaller.new.call(document_type, document_number, date_of_birth, postal_code)
|
||||||
response.valid? && valid_age?(response)
|
response.valid? && valid_age?(response)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -56,4 +56,11 @@ FactoryBot.define do
|
|||||||
document_number
|
document_number
|
||||||
document_type "dni"
|
document_type "dni"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
factory :verification_document, class: Verification::Management::Document do
|
||||||
|
document_number
|
||||||
|
document_type "1"
|
||||||
|
date_of_birth Date.new(1980, 12, 31)
|
||||||
|
postal_code "28013"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,36 @@
|
|||||||
require "rails_helper"
|
require "rails_helper"
|
||||||
|
|
||||||
describe Verification::Management::Document do
|
describe Verification::Management::Document do
|
||||||
|
|
||||||
|
let(:verification_document) { build(:verification_document, document_number: "12345678Z") }
|
||||||
|
|
||||||
|
describe "validations" do
|
||||||
|
|
||||||
|
it "is valid" do
|
||||||
|
expect(verification_document).to be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is not valid without a document number" do
|
||||||
|
verification_document.document_number = nil
|
||||||
|
expect(verification_document).not_to be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is not valid without a document type" do
|
||||||
|
verification_document.document_type = nil
|
||||||
|
expect(verification_document).not_to be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is valid without a date of birth" do
|
||||||
|
verification_document.date_of_birth = nil
|
||||||
|
expect(verification_document).to be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is valid without a postal code" do
|
||||||
|
verification_document.postal_code = nil
|
||||||
|
expect(verification_document).to be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "Allowed Age" do
|
||||||
let(:min_age) { User.minimum_required_age }
|
let(:min_age) { User.minimum_required_age }
|
||||||
let(:over_minium_age_date_of_birth) { Date.new((min_age + 10).years.ago.year, 12, 31) }
|
let(:over_minium_age_date_of_birth) { Date.new((min_age + 10).years.ago.year, 12, 31) }
|
||||||
let(:under_minium_age_date_of_birth) { Date.new(min_age.years.ago.year, 12, 31) }
|
let(:under_minium_age_date_of_birth) { Date.new(min_age.years.ago.year, 12, 31) }
|
||||||
@@ -23,6 +53,37 @@ describe Verification::Management::Document do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "#under_age?" do
|
||||||
|
it "returns true when the user is younger than the user's minimum required age" do
|
||||||
|
census_response = instance_double("CensusApi::Response", date_of_birth: under_minium_age_date_of_birth)
|
||||||
|
expect(described_class.new.under_age?(census_response)).to be true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns false when the user is user's minimum required age" do
|
||||||
|
census_response = instance_double("CensusApi::Response", date_of_birth: just_minium_age_date_of_birth)
|
||||||
|
expect(described_class.new.under_age?(census_response)).to be false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns false when the user is older than user's minimum required age" do
|
||||||
|
census_response = instance_double("CensusApi::Response", date_of_birth: over_minium_age_date_of_birth)
|
||||||
|
expect(described_class.new.under_age?(census_response)).to be false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns true when the user has the user's minimum required age" do
|
||||||
|
census_response = instance_double("CensusApi::Response", date_of_birth: just_minium_age_date_of_birth)
|
||||||
|
expect(described_class.new.valid_age?(census_response)).to be true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns true when the user is older than the user's minimum required age" do
|
||||||
|
census_response = instance_double("CensusApi::Response", date_of_birth: over_minium_age_date_of_birth)
|
||||||
|
expect(described_class.new.valid_age?(census_response)).to be true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "#under_age?" do
|
describe "#under_age?" do
|
||||||
it "returns true when the user is younger than the user's minimum required age" do
|
it "returns true when the user is younger than the user's minimum required age" do
|
||||||
census_response = instance_double("CensusApi::Response", date_of_birth: under_minium_age_date_of_birth)
|
census_response = instance_double("CensusApi::Response", date_of_birth: under_minium_age_date_of_birth)
|
||||||
|
|||||||
Reference in New Issue
Block a user