diff --git a/app/controllers/concerns/idv_session.rb b/app/controllers/concerns/idv_session.rb index 496d81687b0..4f7c25c255e 100644 --- a/app/controllers/concerns/idv_session.rb +++ b/app/controllers/concerns/idv_session.rb @@ -7,7 +7,7 @@ module IdvSession before_action :redirect_if_sp_context_needed end - def confirm_idv_session_started + def confirm_idv_applicant_created redirect_to idv_verify_info_url if idv_session.applicant.blank? end diff --git a/app/controllers/concerns/idv_step_concern.rb b/app/controllers/concerns/idv_step_concern.rb index d19e58ded78..8568a2138cb 100644 --- a/app/controllers/concerns/idv_step_concern.rb +++ b/app/controllers/concerns/idv_step_concern.rb @@ -6,6 +6,5 @@ module IdvStepConcern included do before_action :confirm_two_factor_authenticated before_action :confirm_idv_needed - before_action :confirm_idv_session_started end end diff --git a/app/controllers/idv/phone_controller.rb b/app/controllers/idv/phone_controller.rb index 8844497508b..c8354d18c04 100644 --- a/app/controllers/idv/phone_controller.rb +++ b/app/controllers/idv/phone_controller.rb @@ -7,6 +7,7 @@ class PhoneController < ApplicationController attr_reader :idv_form + before_action :confirm_idv_applicant_created before_action :confirm_step_needed before_action :set_idv_form diff --git a/app/controllers/idv/review_controller.rb b/app/controllers/idv/review_controller.rb index 632da1949bc..d8c0646bbf2 100644 --- a/app/controllers/idv/review_controller.rb +++ b/app/controllers/idv/review_controller.rb @@ -6,6 +6,7 @@ class ReviewController < ApplicationController include StepIndicatorConcern include PhoneConfirmation + before_action :confirm_idv_applicant_created before_action :confirm_idv_steps_complete before_action :confirm_idv_phone_confirmed before_action :confirm_current_password, only: [:create] diff --git a/app/controllers/idv/verify_info_controller.rb b/app/controllers/idv/verify_info_controller.rb index c60bc760926..8de40d8bd79 100644 --- a/app/controllers/idv/verify_info_controller.rb +++ b/app/controllers/idv/verify_info_controller.rb @@ -1,6 +1,6 @@ module Idv class VerifyInfoController < ApplicationController - include IdvSession + include IdvStepConcern include StepUtilitiesConcern before_action :confirm_two_factor_authenticated diff --git a/spec/controllers/concerns/idv_step_concern_spec.rb b/spec/controllers/concerns/idv_step_concern_spec.rb index da0675f12a4..1ddf2d87459 100644 --- a/spec/controllers/concerns/idv_step_concern_spec.rb +++ b/spec/controllers/concerns/idv_step_concern_spec.rb @@ -12,44 +12,6 @@ class StepController < ApplicationController end end - describe '#confirm_idv_session_started' do - controller Idv::StepController do - before_action :confirm_idv_session_started - - def show - render plain: 'Hello' - end - end - - before(:each) do - stub_sign_in(user) - routes.draw do - get 'show' => 'idv/step#show' - end - end - - context 'user has not started IdV session' do - it 'redirects to a previous step url' do - get :show - - expect(response).to redirect_to(idv_verify_info_url) - end - end - - context 'user has started IdV session' do - before do - idv_session.applicant = { first_name: 'Jane' } - allow(subject).to receive(:idv_session).and_return(idv_session) - end - - it 'allows request' do - get :show - - expect(response.body).to eq 'Hello' - end - end - end - describe '#confirm_idv_needed' do controller Idv::StepController do before_action :confirm_idv_needed @@ -70,7 +32,6 @@ def show before do allow(user).to receive(:active_profile).and_return(Profile.new) allow(subject).to receive(:current_user).and_return(user) - allow(subject).to receive(:confirm_idv_session_started).and_return(true) end it 'redirects to activated page' do @@ -83,7 +44,6 @@ def show context 'user does not have active profile' do before do allow(subject).to receive(:current_user).and_return(user) - allow(subject).to receive(:confirm_idv_session_started).and_return(true) end it 'does not redirect to activated page' do diff --git a/spec/controllers/idv/phone_controller_spec.rb b/spec/controllers/idv/phone_controller_spec.rb index d13815ae777..12659a8d800 100644 --- a/spec/controllers/idv/phone_controller_spec.rb +++ b/spec/controllers/idv/phone_controller_spec.rb @@ -17,7 +17,7 @@ expect(subject).to have_actions( :before, :confirm_two_factor_authenticated, - :confirm_idv_session_started, + :confirm_idv_applicant_created, ) end end @@ -66,6 +66,22 @@ end end + context 'when the user has not finished the verify step' do + before do + subject.idv_session.applicant = nil + subject.idv_session.profile_confirmation = nil + subject.idv_session.resolution_successful = nil + + allow(controller).to receive(:confirm_idv_applicant_created).and_call_original + end + + it 'redirects to the verify step' do + get :new + + expect(response).to redirect_to idv_verify_info_url + end + end + context 'when the user is throttled' do before do Throttle.new(throttle_type: :proof_address, user: user).increment_to_throttled! diff --git a/spec/controllers/idv/review_controller_spec.rb b/spec/controllers/idv/review_controller_spec.rb index 1c325cb56f5..a0b99b9c079 100644 --- a/spec/controllers/idv/review_controller_spec.rb +++ b/spec/controllers/idv/review_controller_spec.rb @@ -34,7 +34,7 @@ expect(subject).to have_actions( :before, :confirm_two_factor_authenticated, - :confirm_idv_session_started, + :confirm_idv_applicant_created, :confirm_idv_steps_complete, ) end @@ -192,7 +192,7 @@ def show describe '#new' do before do stub_sign_in(user) - allow(subject).to receive(:confirm_idv_session_started).and_return(true) + allow(subject).to receive(:confirm_idv_applicant_created).and_return(true) end context 'user has completed all steps' do @@ -264,7 +264,7 @@ def show describe '#create' do before do stub_sign_in(user) - allow(subject).to receive(:confirm_idv_session_started).and_return(true) + allow(subject).to receive(:confirm_idv_applicant_created).and_return(true) end context 'user fails to supply correct password' do diff --git a/spec/support/controller_helper.rb b/spec/support/controller_helper.rb index 70a2ea6b009..ac1eba140fd 100644 --- a/spec/support/controller_helper.rb +++ b/spec/support/controller_helper.rb @@ -47,7 +47,7 @@ def stub_idv_steps_before_verify_step(user) dob: 50.years.ago.to_date.to_s, ssn: '666-12-1234', }.with_indifferent_access - allow(subject).to receive(:confirm_idv_session_started).and_return(true) + allow(subject).to receive(:confirm_idv_applicant_created).and_return(true) allow(subject).to receive(:idv_session).and_return(idv_session) allow(subject).to receive(:user_session).and_return(user_session) end @@ -67,7 +67,7 @@ def stub_verify_steps_one_and_two(user) ssn: '666-12-1234', }.with_indifferent_access idv_session.profile_confirmation = true - allow(subject).to receive(:confirm_idv_session_started).and_return(true) + allow(subject).to receive(:confirm_idv_applicant_created).and_return(true) allow(subject).to receive(:idv_session).and_return(idv_session) allow(subject).to receive(:user_session).and_return(user_session) end @@ -81,7 +81,7 @@ def stub_user_with_applicant_data(user, applicant) ) idv_session.applicant = applicant.with_indifferent_access idv_session.profile_confirmation = true - allow(subject).to receive(:confirm_idv_session_started).and_return(true) + allow(subject).to receive(:confirm_idv_applicant_created).and_return(true) allow(subject).to receive(:idv_session).and_return(idv_session) allow(subject).to receive(:user_session).and_return(user_session) end