diff --git a/app/controllers/concerns/idv_step_concern.rb b/app/controllers/concerns/idv_step_concern.rb index 1c94cd9e51f..ae77a789e86 100644 --- a/app/controllers/concerns/idv_step_concern.rb +++ b/app/controllers/concerns/idv_step_concern.rb @@ -64,7 +64,7 @@ def confirm_document_capture_complete def confirm_verify_info_step_complete return if idv_session.verify_info_step_complete? - if idv_session.in_person_enrollment? + if idv_session.pending_in_person_enrollment? redirect_to idv_in_person_verify_info_url else redirect_to idv_verify_info_url diff --git a/app/forms/gpo_verify_form.rb b/app/forms/gpo_verify_form.rb index 3621cdad235..df85c6c2f0b 100644 --- a/app/forms/gpo_verify_form.rb +++ b/app/forms/gpo_verify_form.rb @@ -21,9 +21,9 @@ def submit if result pending_profile&.remove_gpo_deactivation_reason - if pending_profile&.pending_in_person_enrollment? - # note: pending_profile is not active here - pending_profile&.deactivate_for_in_person_verification_and_schedule_enrollment(pii) + + if profile_has_pending_in_person_enrollment? + schedule_in_person_enrollment_and_deactivate_profile elsif fraud_check_failed && threatmetrix_enabled? pending_profile&.deactivate_for_fraud_review elsif fraud_check_failed @@ -61,6 +61,15 @@ def gpo_confirmation_code pending_profile.gpo_confirmation_codes.first_with_otp(otp) end + def profile_has_pending_in_person_enrollment? + pending_profile&.pending_in_person_enrollment? + end + + def schedule_in_person_enrollment_and_deactivate_profile + UspsInPersonProofing::EnrollmentHelper.schedule_in_person_enrollment(user, pii) + pending_profile&.deactivate_for_in_person_verification + end + def which_letter return if !valid_otp? pending_profile.gpo_confirmation_codes.sort_by(&:code_sent_at). diff --git a/app/models/profile.rb b/app/models/profile.rb index 9a936b93ed9..601ff59c8ce 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -123,6 +123,7 @@ def activate_after_passing_in_person fraud_rejection_at: nil, fraud_pending_reason: nil, deactivation_reason: nil, + in_person_verification_pending_at: nil, ) activate end @@ -152,10 +153,10 @@ def in_person_verification_pending? deactivation_reason == 'in_person_verification_pending' end - def deactivate_for_in_person_verification_and_schedule_enrollment(pii) + def deactivate_for_in_person_verification transaction do - UspsInPersonProofing::EnrollmentHelper.schedule_in_person_enrollment(user, pii) - deactivate(:in_person_verification_pending) + deactivate(:in_person_verification_pending) # to be deprecated + update!(active: false, in_person_verification_pending_at: Time.zone.now) end end diff --git a/app/services/idv/profile_maker.rb b/app/services/idv/profile_maker.rb index 1eaf996f054..fb126b8e16e 100644 --- a/app/services/idv/profile_maker.rb +++ b/app/services/idv/profile_maker.rb @@ -6,26 +6,23 @@ def initialize( applicant:, user:, user_password:, - initiating_service_provider: nil, - in_person_verification_pending: false + initiating_service_provider: nil ) self.pii_attributes = Pii::Attributes.new_from_hash(applicant) self.user = user self.user_password = user_password self.initiating_service_provider = initiating_service_provider - self.in_person_verification_pending = in_person_verification_pending end def save_profile( fraud_pending_reason:, gpo_verification_needed:, + in_person_verification_needed:, deactivation_reason: nil ) profile = Profile.new(user: user, active: false, deactivation_reason: deactivation_reason) profile.initiating_service_provider = initiating_service_provider - if in_person_verification_pending - profile.deactivation_reason = :in_person_verification_pending - end + profile.deactivate_for_in_person_verification if in_person_verification_needed profile.encrypt_pii(pii_attributes, user_password) profile.proofing_components = current_proofing_components profile.fraud_pending_reason = fraud_pending_reason @@ -48,7 +45,6 @@ def current_proofing_components :user_password, :phone_confirmed, :initiating_service_provider, - :in_person_verification_pending, ) attr_writer :pii_attributes end diff --git a/app/services/idv/session.rb b/app/services/idv/session.rb index 2e99a13ad16..e482f1f2562 100644 --- a/app/services/idv/session.rb +++ b/app/services/idv/session.rb @@ -56,6 +56,7 @@ def create_profile_from_applicant_with_password(user_password) profile = profile_maker.save_profile( fraud_pending_reason: threatmetrix_fraud_pending_reason, gpo_verification_needed: gpo_verification_needed?, + in_person_verification_needed: pending_in_person_enrollment?, ) profile.activate unless profile.reason_not_to_activate @@ -71,7 +72,7 @@ def create_profile_from_applicant_with_password(user_password) move_pii_to_user_session elsif address_verification_mechanism == 'gpo' create_gpo_entry - elsif in_person_enrollment? + elsif pending_in_person_enrollment? UspsInPersonProofing::EnrollmentHelper.schedule_in_person_enrollment( current_user, pii, @@ -101,7 +102,7 @@ def clear end def associate_in_person_enrollment_with_profile - return unless in_person_enrollment? && current_user.establishing_in_person_enrollment + return unless pending_in_person_enrollment? && current_user.establishing_in_person_enrollment current_user.establishing_in_person_enrollment.update(profile: profile) end @@ -137,7 +138,7 @@ def add_failed_phone_step_number(phone) failed_phone_step_numbers << phone_e164 if !failed_phone_step_numbers.include?(phone_e164) end - def in_person_enrollment? + def pending_in_person_enrollment? current_user.proofing_component&.document_check == Idp::Constants::Vendors::USPS end @@ -237,7 +238,6 @@ def build_profile_maker(user_password) user: current_user, user_password: user_password, initiating_service_provider: service_provider, - in_person_verification_pending: in_person_enrollment?, ) end diff --git a/spec/controllers/idv/personal_key_controller_spec.rb b/spec/controllers/idv/personal_key_controller_spec.rb index 169e8e3e126..27c6a8906d4 100644 --- a/spec/controllers/idv/personal_key_controller_spec.rb +++ b/spec/controllers/idv/personal_key_controller_spec.rb @@ -15,6 +15,7 @@ def stub_idv_session profile = profile_maker.save_profile( fraud_pending_reason: nil, gpo_verification_needed: false, + in_person_verification_needed: false, ) idv_session.pii = profile_maker.pii_attributes idv_session.profile_id = profile.id diff --git a/spec/factories/profiles.rb b/spec/factories/profiles.rb index 7e0b5177bde..009f29963f1 100644 --- a/spec/factories/profiles.rb +++ b/spec/factories/profiles.rb @@ -35,6 +35,7 @@ trait :in_person_verification_pending do deactivation_reason { :in_person_verification_pending } + in_person_verification_pending_at { 15.days.ago } end trait :fraud_pending_reason do diff --git a/spec/models/profile_spec.rb b/spec/models/profile_spec.rb index 95ce3cbb70e..b74fa678bcc 100644 --- a/spec/models/profile_spec.rb +++ b/spec/models/profile_spec.rb @@ -238,6 +238,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil # to change @@ -248,6 +249,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed @@ -262,6 +264,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil # to change @@ -272,6 +275,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed @@ -292,6 +296,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil # to change @@ -301,6 +306,7 @@ expect(active_profile.deactivation_reason).to be_nil expect(active_profile.fraud_review_pending?).to eq(false) expect(active_profile.gpo_verification_pending_at).to be_nil + expect(active_profile.in_person_verification_pending_at).to be_nil expect(active_profile.initiating_service_provider).to be_nil expect(active_profile.verified_at).to be_present @@ -313,6 +319,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed @@ -322,6 +329,7 @@ expect(active_profile.deactivation_reason).to be_nil expect(active_profile.fraud_review_pending?).to eq(false) expect(active_profile.gpo_verification_pending_at).to be_nil + expect(active_profile.in_person_verification_pending_at).to be_nil expect(active_profile.initiating_service_provider).to be_nil # !!! a user can have multiple verified profiles @@ -338,6 +346,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present @@ -348,6 +357,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed end @@ -365,6 +375,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil # to change @@ -375,6 +386,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed end @@ -387,6 +399,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil # to change @@ -397,6 +410,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed end @@ -416,6 +430,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_present + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -429,6 +444,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_present + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -443,6 +459,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(true) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -456,6 +473,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(true) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -470,6 +488,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -483,6 +502,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -512,6 +532,7 @@ expect(profile.deactivation_reason).to be_nil # to change expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present @@ -522,6 +543,7 @@ expect(profile.deactivation_reason).to eq('password_reset') # changed expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil # !!! does a deactivated verified profile remain verified? @@ -541,6 +563,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_present # to change + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -551,6 +574,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil # changed + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -575,6 +599,7 @@ expect(profile.deactivation_reason).to eq 'password_reset' # will change but shouldn't expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -586,6 +611,7 @@ expect(profile.deactivation_reason).to be_nil # !!! changed expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil end @@ -604,6 +630,7 @@ expect(profile.deactivation_reason).to eq 'password_reset' # to change expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to eq verified_at @@ -614,6 +641,7 @@ expect(profile.deactivation_reason).to be_nil # changed expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to eq verified_at end @@ -632,6 +660,7 @@ expect(profile.deactivation_reason).to eq('password_reset') # to change expect(profile.fraud_review_pending?).to eq(true) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -645,6 +674,7 @@ expect(profile.deactivation_reason).to be_nil # changed expect(profile.fraud_review_pending?).to eq(true) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -663,6 +693,7 @@ expect(profile.deactivation_reason).to eq 'encryption_error' expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -673,6 +704,7 @@ expect(profile.deactivation_reason).to eq 'encryption_error' expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil end @@ -691,6 +723,7 @@ expect(profile.deactivation_reason).to eq('password_reset') expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -703,6 +736,7 @@ expect(profile.deactivation_reason).to eq('password_reset') expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -725,6 +759,7 @@ expect(profile.deactivation_reason).to eq 'in_person_verification_pending' # to change expect(profile.fraud_review_pending?).to eq(true) # to change expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_present expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil # to change @@ -735,6 +770,7 @@ expect(profile.deactivation_reason).to be_nil # changed expect(profile.fraud_review_pending?).to eq(false) # changed expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed @@ -759,6 +795,7 @@ expect(profile.deactivation_reason).to eq('in_person_verification_pending') expect(profile.fraud_review_pending?).to eq(true) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_present expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -771,6 +808,7 @@ expect(profile.deactivation_reason).to eq('in_person_verification_pending') expect(profile.fraud_review_pending?).to eq(true) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_present expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -788,6 +826,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(true) # to change expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil # to change @@ -798,6 +837,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) # changed expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed @@ -864,12 +904,13 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(true) # to change expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil # to change expect(profile).to_not be_active - expect(profile.fraud_review_pending_at).to_not be_nil - expect(profile.fraud_pending_reason).to_not be_nil + expect(profile.fraud_review_pending_at).to be_present + expect(profile.fraud_pending_reason).to be_present profile.activate_after_fraud_review_unnecessary @@ -878,6 +919,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) # changed expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_present # changed @@ -902,8 +944,8 @@ # TODO: does deactivating make sense for a non-active profile? Should we prevent it? # TODO: related: should we test against an active profile here? - describe '#deactivate_for_in_person_verification_and_schedule_enrollment' do - it 'sets deactivation reason to in_person_verification_pending' do + describe 'deactivate_for_in_person_verification' do + it 'deactivates a profile for in_person_verification' do profile = create(:profile, user: user) expect(profile.activated_at).to be_nil @@ -911,16 +953,18 @@ expect(profile.deactivation_reason).to be_nil # to change expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil - profile.deactivate_for_in_person_verification_and_schedule_enrollment(pii) + profile.deactivate_for_in_person_verification expect(profile.activated_at).to be_nil expect(profile.active).to eq(false) expect(profile.deactivation_reason).to eq('in_person_verification_pending') # changed expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_present # changed expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil end @@ -937,6 +981,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_nil # to change + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -947,6 +992,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) expect(profile.gpo_verification_pending_at).to be_present # changed + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -966,6 +1012,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(false) # to change expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil @@ -977,6 +1024,7 @@ expect(profile.deactivation_reason).to be_nil expect(profile.fraud_review_pending?).to eq(true) # changed expect(profile.gpo_verification_pending_at).to be_nil + expect(profile.in_person_verification_pending_at).to be_nil expect(profile.initiating_service_provider).to be_nil expect(profile.verified_at).to be_nil diff --git a/spec/services/idv/profile_maker_spec.rb b/spec/services/idv/profile_maker_spec.rb index c85bd46619c..1d554193ba8 100644 --- a/spec/services/idv/profile_maker_spec.rb +++ b/spec/services/idv/profile_maker_spec.rb @@ -6,7 +6,6 @@ let(:user) { create(:user, :fully_registered) } let(:user_password) { user.password } let(:initiating_service_provider) { nil } - let(:in_person_verification_pending) { false } subject do described_class.new( @@ -14,7 +13,6 @@ user: user, user_password: user_password, initiating_service_provider: initiating_service_provider, - in_person_verification_pending: in_person_verification_pending, ) end @@ -23,6 +21,7 @@ profile = subject.save_profile( fraud_pending_reason: nil, gpo_verification_needed: false, + in_person_verification_needed: false, ) pii = subject.pii_attributes @@ -44,6 +43,7 @@ fraud_pending_reason: nil, gpo_verification_needed: false, deactivation_reason: :encryption_error, + in_person_verification_needed: false, ) expect(profile.activated_at).to be_nil @@ -62,6 +62,7 @@ fraud_pending_reason: 'threatmetrix_review', gpo_verification_needed: false, deactivation_reason: nil, + in_person_verification_needed: false, ) expect(profile.activated_at).to be_nil @@ -80,6 +81,7 @@ fraud_pending_reason: nil, gpo_verification_needed: true, deactivation_reason: nil, + in_person_verification_needed: false, ) expect(profile.activated_at).to be_nil @@ -92,12 +94,33 @@ end end + context 'with in_person_verification_needed' do + it 'deactivates a profile for in person verification' do + profile = subject.save_profile( + fraud_pending_reason: nil, + gpo_verification_needed: false, + deactivation_reason: nil, + in_person_verification_needed: true, + ) + + expect(profile.activated_at).to be_nil + expect(profile.active).to eq(false) + expect(profile.deactivation_reason).to eq('in_person_verification_pending') + expect(profile.in_person_verification_pending_at).to_not be_nil + expect(profile.fraud_review_pending?).to eq(false) + expect(profile.gpo_verification_pending_at.present?).to eq(false) + expect(profile.initiating_service_provider).to eq(nil) + expect(profile.verified_at).to be_nil + end + end + context 'as active' do it 'creates an active profile' do profile = subject.save_profile( fraud_pending_reason: nil, gpo_verification_needed: false, deactivation_reason: nil, + in_person_verification_needed: false, ) expect(profile.activated_at).to be_nil @@ -118,6 +141,7 @@ fraud_pending_reason: nil, gpo_verification_needed: false, deactivation_reason: nil, + in_person_verification_needed: false, ) expect(profile.activated_at).to be_nil