diff --git a/app/controllers/idv/how_to_verify_controller.rb b/app/controllers/idv/how_to_verify_controller.rb index 9a952481393..f86fc672bb9 100644 --- a/app/controllers/idv/how_to_verify_controller.rb +++ b/app/controllers/idv/how_to_verify_controller.rb @@ -38,7 +38,7 @@ def self.step_info controller: controller_name, next_steps: [:hybrid_handoff, :document_capture], preconditions: ->(idv_session:, user:) do - self.enabled? + self.enabled? && idv_session.idv_consent_given end, undo_step: ->(idv_session:, user:) {}, # clear any saved data ) diff --git a/spec/controllers/idv/how_to_verify_controller_spec.rb b/spec/controllers/idv/how_to_verify_controller_spec.rb index 97d69a41a7a..b129d8b1138 100644 --- a/spec/controllers/idv/how_to_verify_controller_spec.rb +++ b/spec/controllers/idv/how_to_verify_controller_spec.rb @@ -9,6 +9,7 @@ stub_sign_in(user) stub_analytics subject.idv_session.welcome_visited = true + subject.idv_session.idv_consent_given = true end describe '#step_info' do @@ -32,6 +33,18 @@ expect(response).to render_template :show end + + context 'agreement step not completed' do + before do + subject.idv_session.idv_consent_given = nil + end + + it 'redirects to agreement path' do + get :show + + expect(response).to redirect_to idv_agreement_path + end + end end describe '#update' do