diff --git a/app/controllers/concerns/idv/document_capture_concern.rb b/app/controllers/concerns/idv/document_capture_concern.rb index 9a32b78e67c..58038bda659 100644 --- a/app/controllers/concerns/idv/document_capture_concern.rb +++ b/app/controllers/concerns/idv/document_capture_concern.rb @@ -39,11 +39,9 @@ def extract_pii_from_doc(user, response, store_in_session: false) uuid_prefix: ServiceProvider.find_by(issuer: sp_session[:issuer])&.app_id, ) - if defined?(flow_session) && defined?(idv_session) # hybrid mobile does not have idv_session + if defined?(idv_session) # hybrid mobile does not have idv_session idv_session.had_barcode_read_failure = response.attention_with_barcode? if store_in_session - flow_session[:pii_from_doc] ||= {} - flow_session[:pii_from_doc].merge!(pii_from_doc) idv_session.pii_from_doc ||= {} idv_session.pii_from_doc.merge!(pii_from_doc) idv_session.clear_applicant! diff --git a/app/controllers/concerns/idv/verify_info_concern.rb b/app/controllers/concerns/idv/verify_info_concern.rb index 65b0d22f722..03b3dde0be9 100644 --- a/app/controllers/concerns/idv/verify_info_concern.rb +++ b/app/controllers/concerns/idv/verify_info_concern.rb @@ -319,9 +319,10 @@ def move_applicant_to_idv_session end def delete_pii - flow_session.delete(:pii_from_doc) idv_session.pii_from_doc = nil - flow_session.delete(:pii_from_user) + if defined?(flow_session) # no longer defined for remote flow + flow_session.delete(:pii_from_user) + end end def add_proofing_costs(results) diff --git a/app/controllers/concerns/idv_session.rb b/app/controllers/concerns/idv_session.rb index 81658a78fca..741b547444f 100644 --- a/app/controllers/concerns/idv_session.rb +++ b/app/controllers/concerns/idv_session.rb @@ -32,10 +32,6 @@ def idv_session ) end - def flow_session - user_session['idv/doc_auth'] ||= {} - end - def irs_reproofing? current_user&.reproof_for_irs?( service_provider: current_sp, diff --git a/app/controllers/concerns/idv_step_concern.rb b/app/controllers/concerns/idv_step_concern.rb index cb5c27aca04..a2a9f9695e0 100644 --- a/app/controllers/concerns/idv_step_concern.rb +++ b/app/controllers/concerns/idv_step_concern.rb @@ -37,10 +37,6 @@ def redirect_for_mail_only redirect_to idv_mail_only_warning_url end - def pii_from_doc - idv_session.pii_from_doc || flow_session[:pii_from_doc] - end - def pii_from_user flow_session['pii_from_user'] end @@ -57,7 +53,7 @@ def confirm_ssn_step_complete end def confirm_document_capture_complete - return if pii_from_doc.present? + return if idv_session.pii_from_doc.present? if flow_path == 'standard' redirect_to idv_document_capture_url diff --git a/app/controllers/idv/address_controller.rb b/app/controllers/idv/address_controller.rb index a877101c9e4..6c7fcf03d9d 100644 --- a/app/controllers/idv/address_controller.rb +++ b/app/controllers/idv/address_controller.rb @@ -7,7 +7,7 @@ class AddressController < ApplicationController def new analytics.idv_address_visit - @presenter = AddressPresenter.new(pii: pii_from_doc) + @presenter = AddressPresenter.new(pii: idv_session.pii_from_doc) end def update @@ -24,17 +24,13 @@ def update private def idv_form - Idv::AddressForm.new(pii_from_doc) + Idv::AddressForm.new(idv_session.pii_from_doc) end def success - # Make sure pii_from_doc is available in both places so we can - # update the address for both and keep them in sync - idv_session.pii_from_doc = pii_from_doc profile_params.each do |key, value| idv_session.pii_from_doc[key] = value end - flow_session[:pii_from_doc] = idv_session.pii_from_doc redirect_to idv_verify_info_url end diff --git a/app/controllers/idv/document_capture_controller.rb b/app/controllers/idv/document_capture_controller.rb index 1359b6483ca..2e4eb7c7879 100644 --- a/app/controllers/idv/document_capture_controller.rb +++ b/app/controllers/idv/document_capture_controller.rb @@ -57,7 +57,7 @@ def confirm_hybrid_handoff_complete def confirm_document_capture_needed return if idv_session.redo_document_capture - return if pii_from_doc.blank? && !idv_session.verify_info_step_complete? + return if idv_session.pii_from_doc.blank? && !idv_session.verify_info_step_complete? redirect_to idv_ssn_url end diff --git a/app/controllers/idv/link_sent_controller.rb b/app/controllers/idv/link_sent_controller.rb index 350d945d8a1..d0c239dea7e 100644 --- a/app/controllers/idv/link_sent_controller.rb +++ b/app/controllers/idv/link_sent_controller.rb @@ -48,7 +48,7 @@ def confirm_hybrid_handoff_complete def confirm_document_capture_needed return if idv_session.redo_document_capture - return if pii_from_doc.blank? && !idv_session.verify_info_step_complete? + return if idv_session.pii_from_doc.blank? && !idv_session.verify_info_step_complete? redirect_to idv_ssn_url end diff --git a/app/controllers/idv/ssn_controller.rb b/app/controllers/idv/ssn_controller.rb index f0e64000d91..f3b3084a203 100644 --- a/app/controllers/idv/ssn_controller.rb +++ b/app/controllers/idv/ssn_controller.rb @@ -57,7 +57,7 @@ def confirm_repeat_ssn end def next_url - if pii_from_doc[:state] == 'PR' && !updating_ssn? + if idv_session.pii_from_doc[:state] == 'PR' && !updating_ssn? idv_address_url else idv_verify_info_url diff --git a/app/controllers/idv/verify_info_controller.rb b/app/controllers/idv/verify_info_controller.rb index cd4f7e1c340..a892f63ccc2 100644 --- a/app/controllers/idv/verify_info_controller.rb +++ b/app/controllers/idv/verify_info_controller.rb @@ -56,7 +56,7 @@ def analytics_arguments end def pii - @pii = pii_from_doc + @pii = idv_session.pii_from_doc end end end diff --git a/spec/controllers/concerns/rate_limit_concern_spec.rb b/spec/controllers/concerns/rate_limit_concern_spec.rb index f8e3b8b29b7..f48ecaa4659 100644 --- a/spec/controllers/concerns/rate_limit_concern_spec.rb +++ b/spec/controllers/concerns/rate_limit_concern_spec.rb @@ -26,7 +26,6 @@ def update before(:each) do sign_in(user) allow(subject).to receive(:current_user).and_return(user) - allow(subject).to receive(:flow_session).and_return({}) routes.draw do get 'show' => 'idv/step#show' put 'update' => 'idv/step#update' diff --git a/spec/controllers/idv/address_controller_spec.rb b/spec/controllers/idv/address_controller_spec.rb index ea6708b75d1..b9e135e03c1 100644 --- a/spec/controllers/idv/address_controller_spec.rb +++ b/spec/controllers/idv/address_controller_spec.rb @@ -5,21 +5,14 @@ let(:user) { create(:user) } - let(:idv_session) { subject.idv_session } - let(:pii_from_doc) { Idp::Constants::MOCK_IDV_APPLICANT_WITH_SSN.stringify_keys } - let(:flow_session) do - { pii_from_doc: pii_from_doc } - end - before do stub_sign_in(user) stub_analytics stub_idv_steps_before_verify_step(user) subject.idv_session.flow_path = 'standard' subject.idv_session.pii_from_doc = pii_from_doc - subject.user_session['idv/doc_auth'] = flow_session end describe '#new' do @@ -53,31 +46,13 @@ it 'sets address_edited in idv_session' do expect do put :update, params: params - end.to change { idv_session.address_edited }.from(nil).to eql(true) - end - - it 'updates pii_from_doc in flow_session (even if nil)' do - flow_session[:pii_from_doc] = nil - expect do - put :update, params: params - end.to change { flow_session[:pii_from_doc] }.to eql( - pii_from_doc.merge( - { - 'address1' => '1234 Main St', - 'address2' => 'Apt B', - 'city' => 'Beverly Hills', - 'state' => 'CA', - 'zipcode' => '90210', - }, - ), - ) + end.to change { subject.idv_session.address_edited }.from(nil).to eql(true) end - it 'updates pii_from_doc in idv_session (even if nil)' do - subject.idv_session.pii_from_doc = nil + it 'updates pii_from_doc in idv_session' do expect do put :update, params: params - end.to change { idv_session.pii_from_doc }.to eql( + end.to change { subject.idv_session.pii_from_doc }.to eql( pii_from_doc.merge( { 'address1' => '1234 Main St', diff --git a/spec/controllers/idv/document_capture_controller_spec.rb b/spec/controllers/idv/document_capture_controller_spec.rb index 8e28c53f3ee..8de517414af 100644 --- a/spec/controllers/idv/document_capture_controller_spec.rb +++ b/spec/controllers/idv/document_capture_controller_spec.rb @@ -5,8 +5,6 @@ let(:document_capture_session_uuid) { 'fd14e181-6fb1-4cdc-92e0-ef66dad0df4e' } - let(:flow_session) { {} } - let(:user) { create(:user) } let(:ab_test_args) do @@ -18,7 +16,6 @@ stub_analytics subject.idv_session.flow_path = 'standard' subject.idv_session.document_capture_session_uuid = document_capture_session_uuid - subject.user_session['idv/doc_auth'] = flow_session allow(subject).to receive(:ab_test_analytics_buckets).and_return(ab_test_args) end @@ -107,15 +104,6 @@ end end - context 'with pii in flow session' do - it 'redirects to ssn step' do - flow_session[:pii_from_doc] = Idp::Constants::MOCK_IDV_APPLICANT - get :show - - expect(response).to redirect_to(idv_ssn_url) - end - end - context 'with pii in idv_session' do it 'redirects to ssn step' do subject.idv_session.pii_from_doc = Idp::Constants::MOCK_IDV_APPLICANT diff --git a/spec/controllers/idv/in_person/verify_info_controller_spec.rb b/spec/controllers/idv/in_person/verify_info_controller_spec.rb index eeaca608221..f5fc53dd0a1 100644 --- a/spec/controllers/idv/in_person/verify_info_controller_spec.rb +++ b/spec/controllers/idv/in_person/verify_info_controller_spec.rb @@ -5,9 +5,8 @@ let(:pii_from_user) { Idp::Constants::MOCK_IDV_APPLICANT_SAME_ADDRESS_AS_ID.dup } let(:flow_session) do - { 'document_capture_session_uuid' => 'fd14e181-6fb1-4cdc-92e0-ef66dad0df4e', - :pii_from_user => pii_from_user, - :flow_path => 'standard' } + { pii_from_user: pii_from_user, + flow_path: 'standard' } end let(:user) { build(:user, :with_phone, with: { phone: '+1 (415) 555-0130' }) } diff --git a/spec/controllers/idv/link_sent_controller_spec.rb b/spec/controllers/idv/link_sent_controller_spec.rb index fb53f2d9c92..4745b5de372 100644 --- a/spec/controllers/idv/link_sent_controller_spec.rb +++ b/spec/controllers/idv/link_sent_controller_spec.rb @@ -3,8 +3,6 @@ RSpec.describe Idv::LinkSentController do include IdvHelper - let(:flow_session) { {} } - let(:user) { create(:user) } let(:ab_test_args) do @@ -12,7 +10,6 @@ end before do - allow(subject).to receive(:flow_session).and_return(flow_session) stub_sign_in(user) subject.idv_session.flow_path = 'hybrid' stub_analytics @@ -97,15 +94,6 @@ end end - context 'with pii in flow_session' do - it 'redirects to ssn step' do - flow_session[:pii_from_doc] = Idp::Constants::MOCK_IDV_APPLICANT - get :show - - expect(response).to redirect_to(idv_ssn_url) - end - end - context 'with pii in idv_session' do it 'redirects to ssn step' do subject.idv_session.pii_from_doc = Idp::Constants::MOCK_IDV_APPLICANT diff --git a/spec/controllers/idv/sessions_controller_spec.rb b/spec/controllers/idv/sessions_controller_spec.rb index c16c3fc9c24..b72c8e45de8 100644 --- a/spec/controllers/idv/sessions_controller_spec.rb +++ b/spec/controllers/idv/sessions_controller_spec.rb @@ -20,6 +20,7 @@ let(:idv_session) { double } let(:flow_session) { { x: {} } } + let(:pii) { { first_name: 'Jane' } } context 'when destroying the session' do diff --git a/spec/controllers/idv/ssn_controller_spec.rb b/spec/controllers/idv/ssn_controller_spec.rb index 6c62880c053..447c14127b8 100644 --- a/spec/controllers/idv/ssn_controller_spec.rb +++ b/spec/controllers/idv/ssn_controller_spec.rb @@ -3,10 +3,6 @@ RSpec.describe Idv::SsnController do include IdvHelper - let(:flow_session) do - { pii_from_doc: Idp::Constants::MOCK_IDV_APPLICANT.dup } - end - let(:ssn) { Idp::Constants::MOCK_IDV_APPLICANT_WITH_SSN[:ssn] } let(:user) { create(:user) } @@ -17,7 +13,6 @@ before do stub_sign_in(user) - subject.user_session['idv/doc_auth'] = flow_session subject.idv_session.flow_path = 'standard' subject.idv_session.pii_from_doc = Idp::Constants::MOCK_IDV_APPLICANT.dup stub_analytics @@ -159,28 +154,6 @@ from(nil).to(ssn) end - context 'with a Puerto Rico address and pii_from_doc in flow_session' do - before do - subject.idv_session.pii_from_doc = nil - end - it 'redirects to address controller after user enters their SSN' do - flow_session[:pii_from_doc][:state] = 'PR' - - put :update, params: params - - expect(response).to redirect_to(idv_address_url) - end - - it 'redirects to the verify info controller if a user is updating their SSN' do - subject.idv_session.ssn = ssn - flow_session[:pii_from_doc][:state] = 'PR' - - put :update, params: params - - expect(response).to redirect_to(idv_verify_info_url) - end - end - context 'with a Puerto Rico address and pii_from_doc in idv_session' do it 'redirects to address controller after user enters their SSN' do subject.idv_session.pii_from_doc[:state] = 'PR' @@ -259,7 +232,6 @@ context 'when pii_from_doc is not present' do before do subject.idv_session.flow_path = 'standard' - flow_session.delete(:pii_from_doc) subject.idv_session.pii_from_doc = nil end diff --git a/spec/controllers/idv/verify_info_controller_spec.rb b/spec/controllers/idv/verify_info_controller_spec.rb index 83db0a89456..632fc46fcd8 100644 --- a/spec/controllers/idv/verify_info_controller_spec.rb +++ b/spec/controllers/idv/verify_info_controller_spec.rb @@ -3,10 +3,6 @@ RSpec.describe Idv::VerifyInfoController do include IdvHelper - let(:flow_session) do - { pii_from_doc: Idp::Constants::MOCK_IDV_APPLICANT.dup } - end - let(:user) { create(:user) } let(:analytics_hash) do { @@ -28,7 +24,6 @@ subject.idv_session.flow_path = 'standard' subject.idv_session.pii_from_doc = Idp::Constants::MOCK_IDV_APPLICANT.dup subject.idv_session.ssn = Idp::Constants::MOCK_IDV_APPLICANT_WITH_SSN[:ssn] - subject.user_session['idv/doc_auth'] = flow_session allow(subject).to receive(:ab_test_analytics_buckets).and_return(ab_test_args) end @@ -89,42 +84,19 @@ context 'address line 2' do render_views - context 'pii_from_doc in flow_session' do - before do - subject.idv_session.pii_from_doc = nil - end - - it 'With address2 in PII, shows address line 2 input' do - flow_session[:pii_from_doc][:address2] = 'APT 3E' - get :show - - expect(response.body).to have_content(t('idv.form.address2')) - end - - it 'No address2 in PII, still shows address line 2 input' do - flow_session[:pii_from_doc][:address2] = nil - - get :show + it 'With address2 in PII, shows address line 2 input' do + subject.idv_session.pii_from_doc[:address2] = 'APT 3E' + get :show - expect(response.body).to have_content(t('idv.form.address2')) - end + expect(response.body).to have_content(t('idv.form.address2')) end - context 'pii_from_doc in idv_session' do - it 'With address2 in PII, shows address line 2 input' do - subject.idv_session.pii_from_doc[:address2] = 'APT 3E' - get :show - - expect(response.body).to have_content(t('idv.form.address2')) - end + it 'No address2 in PII, still shows address line 2 input' do + subject.idv_session.pii_from_doc[:address2] = nil - it 'No address2 in PII, still shows address line 2 input' do - subject.idv_session.pii_from_doc[:address2] = nil - - get :show + get :show - expect(response.body).to have_content(t('idv.form.address2')) - end + expect(response.body).to have_content(t('idv.form.address2')) end end @@ -416,32 +388,15 @@ expect(response).to redirect_to idv_verify_info_url end - context 'pii in flow_session' do - it 'modifies pii as expected' do - subject.idv_session.pii_from_doc = nil - - app_id = 'hello-world' - sp = create(:service_provider, app_id: app_id) - sp_session = { issuer: sp.issuer } - allow(controller).to receive(:sp_session).and_return(sp_session) - - put :update - - expect(flow_session[:pii_from_doc][:uuid_prefix]).to eq app_id - end - end - - context 'pii in idv_session' do - it 'modifies pii as expected' do - app_id = 'hello-world' - sp = create(:service_provider, app_id: app_id) - sp_session = { issuer: sp.issuer } - allow(controller).to receive(:sp_session).and_return(sp_session) + it 'modifies pii as expected' do + app_id = 'hello-world' + sp = create(:service_provider, app_id: app_id) + sp_session = { issuer: sp.issuer } + allow(controller).to receive(:sp_session).and_return(sp_session) - put :update + put :update - expect(subject.idv_session.pii_from_doc[:uuid_prefix]).to eq app_id - end + expect(subject.idv_session.pii_from_doc[:uuid_prefix]).to eq app_id end it 'updates DocAuthLog verify_submit_count' do diff --git a/spec/forms/idv/ssn_format_form_spec.rb b/spec/forms/idv/ssn_format_form_spec.rb index 26c0aa2e15e..10df8af324b 100644 --- a/spec/forms/idv/ssn_format_form_spec.rb +++ b/spec/forms/idv/ssn_format_form_spec.rb @@ -3,7 +3,6 @@ RSpec.describe Idv::SsnFormatForm do let(:user) { create(:user) } let(:ssn) { '111-11-1111' } - let(:flow_session) { {} } let(:incoming_ssn) { nil } subject { Idv::SsnFormatForm.new(user, incoming_ssn) } diff --git a/spec/views/idv/welcome/show.html.erb_spec.rb b/spec/views/idv/welcome/show.html.erb_spec.rb index b9ab6b0aab2..e8824449022 100644 --- a/spec/views/idv/welcome/show.html.erb_spec.rb +++ b/spec/views/idv/welcome/show.html.erb_spec.rb @@ -1,7 +1,6 @@ require 'rails_helper' RSpec.describe 'idv/welcome/show.html.erb' do - let(:flow_session) { {} } let(:user_fully_authenticated) { true } let(:sp_name) { nil } let(:user) { create(:user) } @@ -10,7 +9,6 @@ @decorated_sp_session = instance_double(ServiceProviderSession) allow(@decorated_sp_session).to receive(:sp_name).and_return(sp_name) allow(view).to receive(:decorated_sp_session).and_return(@decorated_sp_session) - allow(view).to receive(:flow_session).and_return(flow_session) allow(view).to receive(:user_fully_authenticated?).and_return(user_fully_authenticated) allow(view).to receive(:user_signing_up?).and_return(false) allow(view).to receive(:url_for).and_wrap_original do |method, *args, &block|