From 6c356defba8de4e582fc92bf806124c9f2fec6ca Mon Sep 17 00:00:00 2001 From: Matt Hinz Date: Thu, 2 Feb 2023 16:06:25 -0800 Subject: [PATCH 1/5] LG-8577: Prefill mobile number for hybrid docauth If the user has a mobile number associated with their account, prefill that when showing the handoff screen for hybrid docauth. changelog: User-Facing Improvements, Identity Verification, Prefill mobile number for hybrid doc auth --- app/services/idv/steps/send_link_step.rb | 20 ++++++++++++++----- app/views/idv/doc_auth/send_link.html.erb | 3 ++- .../idv/doc_auth/send_link_step_spec.rb | 4 ++++ .../services/idv/steps/send_link_step_spec.rb | 10 ++++++++++ 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/app/services/idv/steps/send_link_step.rb b/app/services/idv/steps/send_link_step.rb index 1f412e5c58a..9d9f2dc444a 100644 --- a/app/services/idv/steps/send_link_step.rb +++ b/app/services/idv/steps/send_link_step.rb @@ -28,8 +28,22 @@ def call build_telephony_form_response(telephony_result) end + def extra_view_variables + { + idv_phone_form: create_form, + } + end + private + def create_form + Idv::PhoneForm.new( + previous_params: {}, + user: current_user, + delivery_methods: [:sms], + ) + end + def build_telephony_form_response(telephony_result) FormResponse.new( success: telephony_result.success?, @@ -76,11 +90,7 @@ def sp_or_app_name def form_submit params = permit(:phone) params[:otp_delivery_preference] = 'sms' - Idv::PhoneForm.new( - previous_params: {}, - user: current_user, - delivery_methods: [:sms], - ).submit(params) + create_form.submit(params) end def formatted_destination_phone diff --git a/app/views/idv/doc_auth/send_link.html.erb b/app/views/idv/doc_auth/send_link.html.erb index 2ad9512e160..1e49331ba97 100644 --- a/app/views/idv/doc_auth/send_link.html.erb +++ b/app/views/idv/doc_auth/send_link.html.erb @@ -16,7 +16,8 @@

<%= t('doc_auth.instructions.send_sms') %>

<%= simple_form_for( - :doc_auth, + idv_phone_form, + as: :doc_auth, url: url_for, method: 'PUT', html: { autocomplete: 'off' }, diff --git a/spec/features/idv/doc_auth/send_link_step_spec.rb b/spec/features/idv/doc_auth/send_link_step_spec.rb index 38a170129b4..a5a9b3102e2 100644 --- a/spec/features/idv/doc_auth/send_link_step_spec.rb +++ b/spec/features/idv/doc_auth/send_link_step_spec.rb @@ -18,6 +18,10 @@ let(:fake_analytics) { FakeAnalytics.new } let(:fake_attempts_tracker) { IrsAttemptsApiTrackingHelper::FakeAttemptsTracker.new } + it "defaults phone to user's 2fa phone numebr" do + expect(page.find('input[name="doc_auth[phone]"]').value).to eql('+1 202-555-1212') + end + it 'proceeds to the next page with valid info' do expect_any_instance_of(IrsAttemptsApi::Tracker).to receive(:track_event).with( :idv_phone_upload_link_sent, diff --git a/spec/services/idv/steps/send_link_step_spec.rb b/spec/services/idv/steps/send_link_step_spec.rb index 1ac97d58339..dcf7b0bbed7 100644 --- a/spec/services/idv/steps/send_link_step_spec.rb +++ b/spec/services/idv/steps/send_link_step_spec.rb @@ -68,6 +68,16 @@ and_return(irs_attempts_api_tracker) end + describe '#extra_view_variables' do + it 'includes form' do + expect(step.extra_view_variables).to include( + { + idv_phone_form: be_an_instance_of(Idv::PhoneForm), + }, + ) + end + end + describe 'the return value from #call' do let(:response) { step.call } From 5c61745ebbe53fdbea3dceeba1c45d284785f11f Mon Sep 17 00:00:00 2001 From: Matt Hinz Date: Fri, 3 Feb 2023 08:37:32 -0800 Subject: [PATCH 2/5] Update spec/features/idv/doc_auth/send_link_step_spec.rb Co-authored-by: Andrew Duthie --- spec/features/idv/doc_auth/send_link_step_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/features/idv/doc_auth/send_link_step_spec.rb b/spec/features/idv/doc_auth/send_link_step_spec.rb index a5a9b3102e2..0df6bff7d3a 100644 --- a/spec/features/idv/doc_auth/send_link_step_spec.rb +++ b/spec/features/idv/doc_auth/send_link_step_spec.rb @@ -19,7 +19,7 @@ let(:fake_attempts_tracker) { IrsAttemptsApiTrackingHelper::FakeAttemptsTracker.new } it "defaults phone to user's 2fa phone numebr" do - expect(page.find('input[name="doc_auth[phone]"]').value).to eql('+1 202-555-1212') + expect(page.find_field(t('two_factor_authentication.phone_label')).value).to eq('+1 202-555-1212') end it 'proceeds to the next page with valid info' do From edc26d5c71b2fc8a79cebbcc6d4c17179df9a24a Mon Sep 17 00:00:00 2001 From: Matt Hinz Date: Fri, 3 Feb 2023 08:58:24 -0800 Subject: [PATCH 3/5] Update app/services/idv/steps/send_link_step.rb Co-authored-by: Zach Margolis --- app/services/idv/steps/send_link_step.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/idv/steps/send_link_step.rb b/app/services/idv/steps/send_link_step.rb index 9d9f2dc444a..e94ca0c3d9c 100644 --- a/app/services/idv/steps/send_link_step.rb +++ b/app/services/idv/steps/send_link_step.rb @@ -36,7 +36,7 @@ def extra_view_variables private - def create_form + def build_form Idv::PhoneForm.new( previous_params: {}, user: current_user, From 339abf09abf3d2a6a158c73de96c5b2fce2ed722 Mon Sep 17 00:00:00 2001 From: Matt Hinz Date: Fri, 3 Feb 2023 09:00:49 -0800 Subject: [PATCH 4/5] create_form -> build_form --- app/services/idv/steps/send_link_step.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/idv/steps/send_link_step.rb b/app/services/idv/steps/send_link_step.rb index e94ca0c3d9c..e377316b662 100644 --- a/app/services/idv/steps/send_link_step.rb +++ b/app/services/idv/steps/send_link_step.rb @@ -30,7 +30,7 @@ def call def extra_view_variables { - idv_phone_form: create_form, + idv_phone_form: build_form, } end @@ -90,7 +90,7 @@ def sp_or_app_name def form_submit params = permit(:phone) params[:otp_delivery_preference] = 'sms' - create_form.submit(params) + build_form.submit(params) end def formatted_destination_phone From b683228c03d561af1cc5a75beb8b18cc6f7508c0 Mon Sep 17 00:00:00 2001 From: Matt Hinz Date: Fri, 3 Feb 2023 09:27:03 -0800 Subject: [PATCH 5/5] Fix line length issue --- spec/features/idv/doc_auth/send_link_step_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/features/idv/doc_auth/send_link_step_spec.rb b/spec/features/idv/doc_auth/send_link_step_spec.rb index 0df6bff7d3a..407dd4165d7 100644 --- a/spec/features/idv/doc_auth/send_link_step_spec.rb +++ b/spec/features/idv/doc_auth/send_link_step_spec.rb @@ -19,7 +19,8 @@ let(:fake_attempts_tracker) { IrsAttemptsApiTrackingHelper::FakeAttemptsTracker.new } it "defaults phone to user's 2fa phone numebr" do - expect(page.find_field(t('two_factor_authentication.phone_label')).value).to eq('+1 202-555-1212') + field = page.find_field(t('two_factor_authentication.phone_label')) + expect(field.value).to eq('+1 202-555-1212') end it 'proceeds to the next page with valid info' do