From 43143f5a1a7b0671c3ad27e331e4aa06860efa20 Mon Sep 17 00:00:00 2001 From: Sonia Connolly Date: Thu, 1 Jun 2023 16:09:41 -0700 Subject: [PATCH 1/3] Add flow_path back to upload submitted analytics Analytics are sent separately from hybrid and standard code paths, and there were no specs on the standard path [skip changelog] --- app/controllers/idv/hybrid_handoff_controller.rb | 7 +++---- spec/controllers/idv/hybrid_handoff_controller_spec.rb | 10 +++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/controllers/idv/hybrid_handoff_controller.rb b/app/controllers/idv/hybrid_handoff_controller.rb index 39594ce4c05..53d77f31351 100644 --- a/app/controllers/idv/hybrid_handoff_controller.rb +++ b/app/controllers/idv/hybrid_handoff_controller.rb @@ -124,10 +124,9 @@ def bypass_send_link_steps # for the 50/50 state flow_session['Idv::Steps::UploadStep'] = true - response = form_response(destination: :document_capture) - analytics.idv_doc_auth_upload_submitted( - **analytics_arguments.merge(response.to_h), - ) + analytics_args = analytics_arguments.merge(form_response(destination: :document_capture).to_h) + analytics_args[:flow_path] = flow_session[:flow_path] + analytics.idv_doc_auth_upload_submitted(**analytics_args) end def extra_view_variables diff --git a/spec/controllers/idv/hybrid_handoff_controller_spec.rb b/spec/controllers/idv/hybrid_handoff_controller_spec.rb index a1ae8933685..f2c8d95cc97 100644 --- a/spec/controllers/idv/hybrid_handoff_controller_spec.rb +++ b/spec/controllers/idv/hybrid_handoff_controller_spec.rb @@ -107,10 +107,18 @@ skip_upload_step: false } end - it 'sends analytics_submitted event' do + it 'sends analytics_submitted event for hybrid' do put :update, params: { doc_auth: { phone: '202-555-5555' } } expect(@analytics).to have_logged_event(analytics_name, analytics_args) end + + it 'sends analytics_submitted event for desktop' do + put :update, params: { type: 'desktop' } + + analytics_args[:flow_path] = 'standard' + analytics_args[:destination] = :document_capture + expect(@analytics).to have_logged_event(analytics_name, analytics_args) + end end end From 9c7ca3c9ad9abd74413642dc27bc163f1cb4d5cb Mon Sep 17 00:00:00 2001 From: Sonia Connolly Date: Thu, 1 Jun 2023 16:54:58 -0700 Subject: [PATCH 2/3] Use telephony_form_response for analytics if hybrid when hybrid is chosen Confirmed by looking at UpdateStep logs that the telephony form response is added to analytics --- .../idv/hybrid_handoff_controller.rb | 9 ++-- .../idv/hybrid_handoff_controller_spec.rb | 53 ++++++++++++------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/app/controllers/idv/hybrid_handoff_controller.rb b/app/controllers/idv/hybrid_handoff_controller.rb index 53d77f31351..f9dafad06ca 100644 --- a/app/controllers/idv/hybrid_handoff_controller.rb +++ b/app/controllers/idv/hybrid_handoff_controller.rb @@ -45,6 +45,7 @@ def handle_phone_submission return throttled_failure if throttle.throttled? idv_session.phone_for_mobile_flow = params[:doc_auth][:phone] flow_session[:phone_for_mobile_flow] = idv_session.phone_for_mobile_flow + flow_session[:flow_path] = 'hybrid' telephony_result = send_link telephony_form_response = build_telephony_form_response(telephony_result) @@ -60,17 +61,16 @@ def handle_phone_submission ) if !failure_reason - flow_session[:flow_path] = 'hybrid' redirect_to idv_link_sent_url # for the 50/50 state flow_session['Idv::Steps::UploadStep'] = true else redirect_to idv_hybrid_handoff_url + flow_session[:flow_path] = nil end - analytics_args = analytics_arguments.merge(form_response(destination: :link_sent).to_h) - analytics_args[:flow_path] = flow_session[:flow_path] + analytics_args = analytics_arguments.merge(telephony_form_response.to_h) analytics.idv_doc_auth_upload_submitted(**analytics_args) end @@ -103,6 +103,7 @@ def build_telephony_form_response(telephony_result) extra: { telephony_response: telephony_result.to_h, destination: :link_sent, + flow_path: flow_session[:flow_path], }, ) end @@ -125,7 +126,6 @@ def bypass_send_link_steps flow_session['Idv::Steps::UploadStep'] = true analytics_args = analytics_arguments.merge(form_response(destination: :document_capture).to_h) - analytics_args[:flow_path] = flow_session[:flow_path] analytics.idv_doc_auth_upload_submitted(**analytics_args) end @@ -172,6 +172,7 @@ def form_response(destination:) extra: { destination: destination, skip_upload_step: mobile_device?, + flow_path: flow_session[:flow_path], }, ) end diff --git a/spec/controllers/idv/hybrid_handoff_controller_spec.rb b/spec/controllers/idv/hybrid_handoff_controller_spec.rb index f2c8d95cc97..6b240f1d6ae 100644 --- a/spec/controllers/idv/hybrid_handoff_controller_spec.rb +++ b/spec/controllers/idv/hybrid_handoff_controller_spec.rb @@ -96,29 +96,46 @@ describe '#update' do let(:analytics_name) { 'IdV: doc auth upload submitted' } - let(:analytics_args) do - { success: true, - errors: {}, - destination: :link_sent, - flow_path: 'hybrid', - step: 'upload', - analytics_id: 'Doc Auth', - irs_reproofing: false, - skip_upload_step: false } - end - it 'sends analytics_submitted event for hybrid' do - put :update, params: { doc_auth: { phone: '202-555-5555' } } + context 'hybrid flow' do + let(:analytics_args) do + { success: true, + errors: { message: nil }, + analytics_id: 'Doc Auth', + destination: :link_sent, + flow_path: 'hybrid', + irs_reproofing: false, + step: 'upload', + telephony_response: { errors: {}, + message_id: 'fake-message-id', + request_id: 'fake-message-request-id', + success: true } } + end - expect(@analytics).to have_logged_event(analytics_name, analytics_args) + it 'sends analytics_submitted event for hybrid' do + put :update, params: { doc_auth: { phone: '202-555-5555' } } + + expect(@analytics).to have_logged_event(analytics_name, analytics_args) + end end - it 'sends analytics_submitted event for desktop' do - put :update, params: { type: 'desktop' } + context 'desktop flow' do + let(:analytics_args) do + { success: true, + errors: {}, + destination: :document_capture, + flow_path: 'standard', + step: 'upload', + analytics_id: 'Doc Auth', + irs_reproofing: false, + skip_upload_step: false } + end - analytics_args[:flow_path] = 'standard' - analytics_args[:destination] = :document_capture - expect(@analytics).to have_logged_event(analytics_name, analytics_args) + it 'sends analytics_submitted event for desktop' do + put :update, params: { type: 'desktop' } + + expect(@analytics).to have_logged_event(analytics_name, analytics_args) + end end end end From bf0985d5bf08a3599345172a7b58c617c343bd5c Mon Sep 17 00:00:00 2001 From: Sonia Connolly Date: Fri, 2 Jun 2023 08:17:22 -0700 Subject: [PATCH 3/3] Address review comments Remove analytics args variable, re-order spec hashes to match --- app/controllers/idv/hybrid_handoff_controller.rb | 12 ++++++++---- .../idv/hybrid_handoff_controller_spec.rb | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/controllers/idv/hybrid_handoff_controller.rb b/app/controllers/idv/hybrid_handoff_controller.rb index f9dafad06ca..b174bc1e057 100644 --- a/app/controllers/idv/hybrid_handoff_controller.rb +++ b/app/controllers/idv/hybrid_handoff_controller.rb @@ -70,8 +70,9 @@ def handle_phone_submission flow_session[:flow_path] = nil end - analytics_args = analytics_arguments.merge(telephony_form_response.to_h) - analytics.idv_doc_auth_upload_submitted(**analytics_args) + analytics.idv_doc_auth_upload_submitted( + **analytics_arguments.merge(telephony_form_response.to_h), + ) end def send_link @@ -125,8 +126,11 @@ def bypass_send_link_steps # for the 50/50 state flow_session['Idv::Steps::UploadStep'] = true - analytics_args = analytics_arguments.merge(form_response(destination: :document_capture).to_h) - analytics.idv_doc_auth_upload_submitted(**analytics_args) + analytics.idv_doc_auth_upload_submitted( + **analytics_arguments.merge( + form_response(destination: :document_capture).to_h, + ), + ) end def extra_view_variables diff --git a/spec/controllers/idv/hybrid_handoff_controller_spec.rb b/spec/controllers/idv/hybrid_handoff_controller_spec.rb index 6b240f1d6ae..19e8b525529 100644 --- a/spec/controllers/idv/hybrid_handoff_controller_spec.rb +++ b/spec/controllers/idv/hybrid_handoff_controller_spec.rb @@ -101,11 +101,11 @@ let(:analytics_args) do { success: true, errors: { message: nil }, - analytics_id: 'Doc Auth', destination: :link_sent, flow_path: 'hybrid', - irs_reproofing: false, step: 'upload', + analytics_id: 'Doc Auth', + irs_reproofing: false, telephony_response: { errors: {}, message_id: 'fake-message-id', request_id: 'fake-message-request-id',