From 811b21ccd2b833c2c0a4ba9c65492c12479e6e22 Mon Sep 17 00:00:00 2001 From: Mitchell Henke Date: Mon, 4 Apr 2022 09:05:47 -0500 Subject: [PATCH] Mark current step as invalid when in invalid state in SSN/Verify step changelog: Bug Fixes, Identity Verification, Fix uncommon errors during proofing at the resolution and SSN steps --- app/services/idv/steps/ssn_step.rb | 11 ++++++++++- app/services/idv/steps/verify_step.rb | 11 ++++++++++- spec/services/idv/steps/ssn_step_spec.rb | 3 ++- spec/services/idv/steps/verify_step_spec.rb | 3 ++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/services/idv/steps/ssn_step.rb b/app/services/idv/steps/ssn_step.rb index 1d189857fca..737fce60757 100644 --- a/app/services/idv/steps/ssn_step.rb +++ b/app/services/idv/steps/ssn_step.rb @@ -4,7 +4,7 @@ class SsnStep < DocAuthBaseStep STEP_INDICATOR_STEP = :verify_info def call - return mark_step_incomplete(:document_capture) if flow_session[:pii_from_doc].nil? + return invalid_state_response if invalid_state? flow_session[:pii_from_doc][:ssn] = flow_params[:ssn] end @@ -14,6 +14,15 @@ def call def form_submit Idv::SsnFormatForm.new(current_user).submit(permit(:ssn)) end + + def invalid_state? + flow_session[:pii_from_doc].nil? + end + + def invalid_state_response + mark_step_incomplete(:document_capture) + FormResponse.new(success: false) + end end end end diff --git a/app/services/idv/steps/verify_step.rb b/app/services/idv/steps/verify_step.rb index 18eeb770194..7ccb7cc9fa5 100644 --- a/app/services/idv/steps/verify_step.rb +++ b/app/services/idv/steps/verify_step.rb @@ -11,7 +11,7 @@ def call def enqueue_job return if flow_session[verify_step_document_capture_session_uuid_key] - return mark_step_incomplete(:ssn) if pii_from_doc.nil? + return invalid_state_response if invalid_state? pii_from_doc[:uuid_prefix] = ServiceProvider.find_by(issuer: sp_session[:issuer])&.app_id @@ -52,6 +52,15 @@ def pii_from_doc def idv_agent @idv_agent ||= Idv::Agent.new(pii_from_doc) end + + def invalid_state? + flow_session[:pii_from_doc].nil? + end + + def invalid_state_response + mark_step_incomplete(:ssn) + FormResponse.new(success: false) + end end end end diff --git a/spec/services/idv/steps/ssn_step_spec.rb b/spec/services/idv/steps/ssn_step_spec.rb index 813bce50ec3..e5445859ef5 100644 --- a/spec/services/idv/steps/ssn_step_spec.rb +++ b/spec/services/idv/steps/ssn_step_spec.rb @@ -55,8 +55,9 @@ it 'marks previous step as incomplete' do expect(flow.flow_session['Idv::Steps::DocumentCaptureStep']).to eq true - expect(step.call).to eq nil + result = step.call expect(flow.flow_session['Idv::Steps::DocumentCaptureStep']).to eq nil + expect(result.success?).to eq false end end end diff --git a/spec/services/idv/steps/verify_step_spec.rb b/spec/services/idv/steps/verify_step_spec.rb index 2986880c705..832e317307b 100644 --- a/spec/services/idv/steps/verify_step_spec.rb +++ b/spec/services/idv/steps/verify_step_spec.rb @@ -74,8 +74,9 @@ it 'marks step as incomplete' do expect(flow.flow_session['Idv::Steps::SsnStep']).to eq true - expect(step.call).to eq nil + result = step.call expect(flow.flow_session['Idv::Steps::SsnStep']).to eq nil + expect(result.success?).to eq false end end