From 81894fb10e7f94c4e7361ad490973efb107980b0 Mon Sep 17 00:00:00 2001 From: Eileen McFarland <80347702+eileen-nava@users.noreply.github.com> Date: Fri, 23 Aug 2024 15:39:22 -0400 Subject: [PATCH 1/2] modify account_show_presenter to account for expired, failed, and cancelled in_person_enrollments --- app/presenters/account_show_presenter.rb | 11 +++++++- spec/views/accounts/show.html.erb_spec.rb | 32 +++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/app/presenters/account_show_presenter.rb b/app/presenters/account_show_presenter.rb index 32a0821437f..abc3902264a 100644 --- a/app/presenters/account_show_presenter.rb +++ b/app/presenters/account_show_presenter.rb @@ -63,7 +63,16 @@ def pending_idv? end def pending_ipp? - !!user.pending_profile&.in_person_verification_pending? + in_person_enrollment = user&.in_person_enrollments&.first + if in_person_enrollment&.expired? + user.pending_in_person_enrollment.present? + elsif in_person_enrollment&.cancelled? + user.pending_in_person_enrollment.present? + elsif in_person_enrollment&.failed? + user.pending_in_person_enrollment.present? + else + !!user.pending_profile&.in_person_verification_pending? + end end def pending_gpo? diff --git a/spec/views/accounts/show.html.erb_spec.rb b/spec/views/accounts/show.html.erb_spec.rb index d24efb61757..61fad86cc25 100644 --- a/spec/views/accounts/show.html.erb_spec.rb +++ b/spec/views/accounts/show.html.erb_spec.rb @@ -111,6 +111,38 @@ end end + context 'when current user has an in_person_enrollment that was failed' do + let(:vtr) { ['Pe'] } + let(:sp_name) { 'sinatra-test-app' } + let(:user) { create(:user, :with_pending_in_person_enrollment, :with_multiple_emails) } + + before do + # Make the in_person_enrollment and associated profile failed + in_person_enrollment = user.in_person_enrollments.first + in_person_enrollment.update!(status: :failed, status_check_completed_at: Time.zone.now) + end + + it 'renders the idv partial' do + expect(render).to render_template(partial: 'accounts/_identity_verification') + end + end + + context 'when current user has an in_person_enrollment that was cancelled' do + let(:vtr) { ['Pe'] } + let(:sp_name) { 'sinatra-test-app' } + let(:user) { build(:user, :with_pending_in_person_enrollment) } + + before do + # Make the in_person_enrollment and associated profile cancelled + in_person_enrollment = user.in_person_enrollments.first + in_person_enrollment.update!(status: :cancelled, status_check_completed_at: Time.zone.now) + end + + it 'renders the idv partial' do + expect(render).to render_template(partial: 'accounts/_identity_verification') + end + end + context 'when current user has an in_person_enrollment that expired' do let(:vtr) { ['Pe'] } let(:sp_name) { 'sinatra-test-app' } From af79153b9ff05f3baf1de6af0158a0238abe3d18 Mon Sep 17 00:00:00 2001 From: Eileen McFarland <80347702+eileen-nava@users.noreply.github.com> Date: Fri, 23 Aug 2024 15:48:58 -0400 Subject: [PATCH 2/2] changelog: Bug Fixes, In-person proofing, prevent account page from blowing up for expired, failed, and cancelled in_person_enrollments