From 8fd2ad7708f70ba77c1455eac4afab8a8dbe4ab1 Mon Sep 17 00:00:00 2001 From: gina-yamada Date: Fri, 28 Feb 2025 15:38:33 -0700 Subject: [PATCH 1/5] Move cancelling prev ipp enrollments to before --- app/controllers/idv/welcome_controller.rb | 3 +- .../idv/welcome_controller_spec.rb | 63 ++++++++++--------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/app/controllers/idv/welcome_controller.rb b/app/controllers/idv/welcome_controller.rb index 75907f3e93a..e4cc90cd62c 100644 --- a/app/controllers/idv/welcome_controller.rb +++ b/app/controllers/idv/welcome_controller.rb @@ -7,6 +7,7 @@ class WelcomeController < ApplicationController include StepIndicatorConcern before_action :confirm_not_rate_limited + before_action :cancel_previous_in_person_enrollments def show idv_session.proofing_started_at ||= Time.zone.now.iso8601 @@ -23,7 +24,6 @@ def update analytics.idv_doc_auth_welcome_submitted(**analytics_arguments) create_document_capture_session - cancel_previous_in_person_enrollments idv_session.welcome_visited = true @@ -61,7 +61,6 @@ def create_document_capture_session end def cancel_previous_in_person_enrollments - return unless IdentityConfig.store.in_person_proofing_enabled UspsInPersonProofing::EnrollmentHelper.cancel_establishing_and_in_progress_enrollments( current_user, ) diff --git a/spec/controllers/idv/welcome_controller_spec.rb b/spec/controllers/idv/welcome_controller_spec.rb index e7ac6c6183b..c4dcdd543a8 100644 --- a/spec/controllers/idv/welcome_controller_spec.rb +++ b/spec/controllers/idv/welcome_controller_spec.rb @@ -28,6 +28,41 @@ :check_for_mail_only_outage, ) end + + it 'includes cancelling previous in person enrollments' do + expect(subject).to have_actions( + :before, + :cancel_previous_in_person_enrollments, + ) + end + + context 'with previous establishing and pending in-person enrollments' do + before do + allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) + end + + let!(:establishing_enrollment) { create(:in_person_enrollment, :establishing, user: user) } + let(:password_reset_profile) { create(:profile, :password_reset, user: user) } + let!(:pending_enrollment) do + create(:in_person_enrollment, :pending, user: user, profile: password_reset_profile) + end + let(:fraud_password_reset_profile) { create(:profile, :password_reset, user: user) } + let!(:fraud_review_enrollment) do + create( + :in_person_enrollment, :in_fraud_review, user: user, profile: fraud_password_reset_profile + ) + end + + it 'cancels all previous establishing, pending, and in_fraud_review enrollments' do + put :update + + expect(establishing_enrollment.reload.status).to eq(InPersonEnrollment::STATUS_CANCELLED) + expect(pending_enrollment.reload.status).to eq(InPersonEnrollment::STATUS_CANCELLED) + expect(fraud_review_enrollment.reload.status).to eq(InPersonEnrollment::STATUS_CANCELLED) + expect(user.establishing_in_person_enrollment).to be_blank + expect(user.pending_in_person_enrollment).to be_blank + end + end end describe '#show' do @@ -133,33 +168,5 @@ expect { put :update } .to change { subject.idv_session.document_capture_session_uuid }.from(nil) end - - context 'with previous establishing and pending in-person enrollments' do - let!(:establishing_enrollment) { create(:in_person_enrollment, :establishing, user: user) } - let(:password_reset_profile) { create(:profile, :password_reset, user: user) } - let!(:pending_enrollment) do - create(:in_person_enrollment, :pending, user: user, profile: password_reset_profile) - end - let(:fraud_password_reset_profile) { create(:profile, :password_reset, user: user) } - let!(:fraud_review_enrollment) do - create( - :in_person_enrollment, :in_fraud_review, user: user, profile: fraud_password_reset_profile - ) - end - - before do - allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) - end - - it 'cancels all previous establishing, pending, and in_fraud_review enrollments' do - put :update - - expect(establishing_enrollment.reload.status).to eq(InPersonEnrollment::STATUS_CANCELLED) - expect(pending_enrollment.reload.status).to eq(InPersonEnrollment::STATUS_CANCELLED) - expect(fraud_review_enrollment.reload.status).to eq(InPersonEnrollment::STATUS_CANCELLED) - expect(user.establishing_in_person_enrollment).to be_blank - expect(user.pending_in_person_enrollment).to be_blank - end - end end end From f902c5b7c9fc77291e2d2c55154c4311e78e91b1 Mon Sep 17 00:00:00 2001 From: gina-yamada Date: Mon, 3 Mar 2025 09:41:49 -0700 Subject: [PATCH 2/5] changelog: Internal, In-person proofing, Move in person enrollment clean up in welcome controller from on update to a before action From dade3e9a62291e5ac047942ecd55ba156a5b7266 Mon Sep 17 00:00:00 2001 From: gina-yamada Date: Tue, 4 Mar 2025 11:56:50 -0700 Subject: [PATCH 3/5] before action on show only --- app/controllers/idv/welcome_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/idv/welcome_controller.rb b/app/controllers/idv/welcome_controller.rb index e4cc90cd62c..d25415fbca5 100644 --- a/app/controllers/idv/welcome_controller.rb +++ b/app/controllers/idv/welcome_controller.rb @@ -7,7 +7,7 @@ class WelcomeController < ApplicationController include StepIndicatorConcern before_action :confirm_not_rate_limited - before_action :cancel_previous_in_person_enrollments + before_action :cancel_previous_in_person_enrollments, only: :show def show idv_session.proofing_started_at ||= Time.zone.now.iso8601 From e3eede1235c414bf95e4998343cd256cff17a82c Mon Sep 17 00:00:00 2001 From: gina-yamada Date: Tue, 4 Mar 2025 12:28:28 -0700 Subject: [PATCH 4/5] change spec to show --- spec/controllers/idv/welcome_controller_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/controllers/idv/welcome_controller_spec.rb b/spec/controllers/idv/welcome_controller_spec.rb index c4dcdd543a8..266ce0bd837 100644 --- a/spec/controllers/idv/welcome_controller_spec.rb +++ b/spec/controllers/idv/welcome_controller_spec.rb @@ -54,7 +54,7 @@ end it 'cancels all previous establishing, pending, and in_fraud_review enrollments' do - put :update + put :show expect(establishing_enrollment.reload.status).to eq(InPersonEnrollment::STATUS_CANCELLED) expect(pending_enrollment.reload.status).to eq(InPersonEnrollment::STATUS_CANCELLED) From 1688eafdd1a5fe1389b434a9387a394537e66a53 Mon Sep 17 00:00:00 2001 From: gina-yamada Date: Tue, 4 Mar 2025 12:49:32 -0700 Subject: [PATCH 5/5] Add addi spec for ipp redirect --- spec/controllers/idv/welcome_controller_spec.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/spec/controllers/idv/welcome_controller_spec.rb b/spec/controllers/idv/welcome_controller_spec.rb index 266ce0bd837..793e1f6092a 100644 --- a/spec/controllers/idv/welcome_controller_spec.rb +++ b/spec/controllers/idv/welcome_controller_spec.rb @@ -140,6 +140,22 @@ expect(response).to redirect_to(idv_please_call_url) end + + context 'has pending in-person enrollment' do + before do + allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) + end + + it 'redirects to ready to verify' do + profile = create(:profile, :in_person_verification_pending, user:) + + stub_sign_in(profile.user) + + get :show + + expect(response).to redirect_to(idv_in_person_ready_to_verify_url) + end + end end describe '#update' do