diff --git a/app/controllers/concerns/idv_step_concern.rb b/app/controllers/concerns/idv_step_concern.rb index 36aef0fbe0b..bafd906baed 100644 --- a/app/controllers/concerns/idv_step_concern.rb +++ b/app/controllers/concerns/idv_step_concern.rb @@ -9,6 +9,7 @@ module IdvStepConcern include FraudReviewConcern include Idv::AbTestAnalyticsConcern include Idv::VerifyByMailConcern + include Idv::DocAuthVendorConcern included do before_action :confirm_two_factor_authenticated @@ -71,7 +72,15 @@ def confirm_hybrid_handoff_needed # available when the user tries to redo document capture. if idv_session.skip_hybrid_handoff? || !FeatureManagement.idv_allow_hybrid_flow? idv_session.flow_path = 'standard' - redirect_to idv_document_capture_url + redirect_to vendor_document_capture_url + end + end + + def vendor_document_capture_url + if doc_auth_vendor == Idp::Constants::Vendors::SOCURE + idv_socure_document_capture_url + else + idv_document_capture_url end end diff --git a/app/controllers/idv/document_capture_controller.rb b/app/controllers/idv/document_capture_controller.rb index 2abb39d3002..53c8b79c099 100644 --- a/app/controllers/idv/document_capture_controller.rb +++ b/app/controllers/idv/document_capture_controller.rb @@ -40,7 +40,7 @@ def update if result.success? redirect_to idv_ssn_url else - redirect_to idv_document_capture_url + redirect_to vendor_document_capture_url end end diff --git a/app/controllers/idv/hybrid_handoff_controller.rb b/app/controllers/idv/hybrid_handoff_controller.rb index ea69b145fe9..d78224d68ea 100644 --- a/app/controllers/idv/hybrid_handoff_controller.rb +++ b/app/controllers/idv/hybrid_handoff_controller.rb @@ -149,7 +149,7 @@ def update_document_capture_session_requested_at(session_uuid) def bypass_send_link_steps idv_session.flow_path = 'standard' - redirect_to idv_document_capture_url + redirect_to vendor_document_capture_url analytics.idv_doc_auth_hybrid_handoff_submitted( **analytics_arguments.merge( diff --git a/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb b/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb index 6ff0e519f17..956d555c70f 100644 --- a/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb +++ b/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb @@ -23,6 +23,7 @@ def show redirect_to idv_hybrid_mobile_capture_complete_url end + analytics.idv_doc_auth_document_capture_visited(**analytics_arguments) session[:socure_docv_wait_polling_started_at] = nil Funnel::DocAuth::RegisterStep.new(document_capture_user.id, sp_session[:issuer]) diff --git a/app/controllers/idv/socure/document_capture_controller.rb b/app/controllers/idv/socure/document_capture_controller.rb index 08afa045b53..fd165e63899 100644 --- a/app/controllers/idv/socure/document_capture_controller.rb +++ b/app/controllers/idv/socure/document_capture_controller.rb @@ -22,6 +22,7 @@ class DocumentCaptureController < ApplicationController before_action :fetch_test_verification_data, only: [:update] def show + analytics.idv_doc_auth_document_capture_visited(**analytics_arguments) idv_session.socure_docv_wait_polling_started_at = nil Funnel::DocAuth::RegisterStep.new(current_user.id, sp_session[:issuer]) diff --git a/spec/controllers/concerns/idv_step_concern_spec.rb b/spec/controllers/concerns/idv_step_concern_spec.rb index 0475a9a67e6..fe472b1794c 100644 --- a/spec/controllers/concerns/idv_step_concern_spec.rb +++ b/spec/controllers/concerns/idv_step_concern_spec.rb @@ -37,6 +37,8 @@ def show routes.draw do get 'show' => 'anonymous#show' end + allow(controller).to receive(:document_capture_session) + .and_return(create(:document_capture_session, user:)) end context 'redo specified' do diff --git a/spec/controllers/idv/hybrid_mobile/socure/document_capture_controller_spec.rb b/spec/controllers/idv/hybrid_mobile/socure/document_capture_controller_spec.rb index e85713c0bc0..35453635735 100644 --- a/spec/controllers/idv/hybrid_mobile/socure/document_capture_controller_spec.rb +++ b/spec/controllers/idv/hybrid_mobile/socure/document_capture_controller_spec.rb @@ -140,6 +140,16 @@ get(:show) end + it 'correctly logs idv_doc_auth_document_capture_visited' do + expect(@analytics).to have_logged_event( + 'IdV: doc auth document_capture visited', + hash_including( + step: 'socure_document_capture', + flow_path: 'hybrid', + ), + ) + end + it 'creates a DocumentRequest' do expect(request_class).to have_received(:new) .with( diff --git a/spec/features/idv/doc_auth/socure_document_capture_spec.rb b/spec/features/idv/doc_auth/socure_document_capture_spec.rb index 988b98f0733..9a95c4254be 100644 --- a/spec/features/idv/doc_auth/socure_document_capture_spec.rb +++ b/spec/features/idv/doc_auth/socure_document_capture_spec.rb @@ -62,6 +62,18 @@ end it 'shows the Try Again page and allows user to start IPP', allow_browser_log: true do + expect(fake_analytics).to_not have_logged_event( + 'IdV: doc auth document_capture visited', + hash_including( + step: 'document_capture', + ), + ) + expect(fake_analytics).to have_logged_event( + 'IdV: doc auth document_capture visited', + hash_including( + step: 'socure_document_capture', + ), + ) expect(page).to have_current_path(fake_socure_document_capture_app_url) visit idv_socure_document_capture_path expect(page).to have_current_path(idv_socure_document_capture_path)