diff --git a/app/controllers/idv/in_person/verify_info_controller.rb b/app/controllers/idv/in_person/verify_info_controller.rb index 63d8007b33a..d4f9d4cdbfa 100644 --- a/app/controllers/idv/in_person/verify_info_controller.rb +++ b/app/controllers/idv/in_person/verify_info_controller.rb @@ -10,6 +10,7 @@ class VerifyInfoController < ApplicationController include VerifyInfoConcern before_action :confirm_not_rate_limited_after_doc_auth, except: [:show] + before_action :confirm_pii_data_present before_action :confirm_ssn_step_complete def show @@ -73,7 +74,8 @@ def prev_url end def pii - user_session.dig('idv/in_person', :pii_from_user).merge(ssn: idv_session.ssn) + pii_from_user = user_session.dig('idv/in_person', :pii_from_user) || {} + pii_from_user.merge(ssn: idv_session.ssn) end # override IdvSessionConcern @@ -94,6 +96,12 @@ def confirm_ssn_step_complete return if pii.present? && idv_session.ssn.present? redirect_to prev_url end + + def confirm_pii_data_present + unless user_session.dig('idv/in_person').present? + redirect_to idv_path + end + end end end end diff --git a/spec/controllers/idv/in_person/verify_info_controller_spec.rb b/spec/controllers/idv/in_person/verify_info_controller_spec.rb index cdf9698fad5..93a24901d47 100644 --- a/spec/controllers/idv/in_person/verify_info_controller_spec.rb +++ b/spec/controllers/idv/in_person/verify_info_controller_spec.rb @@ -48,6 +48,13 @@ :confirm_ssn_step_complete, ) end + + it 'confirms idv/in_person data is present' do + expect(subject).to have_actions( + :before, + :confirm_pii_data_present, + ) + end end before do @@ -171,6 +178,29 @@ expect(@analytics).to have_logged_event('IdV: proofing resolution result missing') end end + + context 'when idv/in_person data is present' do + before do + subject.user_session['idv/in_person'] = flow_session + end + + it 'renders the show template without errors' do + get :show + + expect(response).to render_template :show + end + end + + context 'when idv/in_person data is missing' do + before do + subject.user_session['idv/in_person'] = {} + end + + it 'redirects to idv_path' do + get :show + expect(response).to redirect_to(idv_path) + end + end end describe '#update' do