diff --git a/app/services/idv/steps/send_link_step.rb b/app/services/idv/steps/send_link_step.rb index 1f412e5c58a..e377316b662 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: build_form, + } + end + private + def build_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) + build_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..407dd4165d7 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,11 @@ let(:fake_analytics) { FakeAnalytics.new } let(:fake_attempts_tracker) { IrsAttemptsApiTrackingHelper::FakeAttemptsTracker.new } + it "defaults phone to user's 2fa phone numebr" do + 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 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 }