Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 5 additions & 13 deletions app/controllers/concerns/fraud_review_concern.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,29 @@ module FraudReviewConcern
delegate :fraud_check_failed?,
:fraud_review_pending?,
:fraud_rejection?,
:ipp_fraud_review_pending?,
to: :fraud_review_checker

def handle_fraud
in_person_handle_pending_fraud_review
handle_pending_fraud_review
handle_fraud_rejection
end

def handle_pending_fraud_review
# If the user has not passed IPP at a post office, allow them to
# complete another enrollment by not redirecting to please call
return if in_person_can_perform_fraud_review?
# or rejection screen
return if in_person_prevent_fraud_redirection?
redirect_to_fraud_review if fraud_review_pending?
end

def handle_fraud_rejection
return if in_person_prevent_fraud_redirection?
redirect_to_fraud_rejection if fraud_rejection?
end

def in_person_handle_pending_fraud_review
return unless in_person_can_perform_fraud_review?
if fraud_review_pending? && current_user.in_person_enrollment_status == 'passed'
redirect_to_fraud_review
end
end

def in_person_can_perform_fraud_review?
def in_person_prevent_fraud_redirection?
IdentityConfig.store.in_person_proofing_enforce_tmx &&
current_user.in_person_enrollment_status != 'canceled' &&
!current_user.in_person_enrollment_status.nil?
current_user.in_person_enrollment_status != 'passed'
end

def redirect_to_fraud_review
Expand Down
24 changes: 20 additions & 4 deletions spec/controllers/idv/please_call_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@
expect(response).to render_template :show
end

it 'returns true from in_person_can_perform_fraud_review' do
expect(subject.in_person_can_perform_fraud_review?).to eq(true)
it 'returns false from in_person_prevent_fraud_redirection' do
expect(subject.in_person_prevent_fraud_redirection?).to eq(false)
end

it 'redirects a user who is not fraud review pending' do
Expand All @@ -93,6 +93,22 @@
expect(response).to redirect_to(idv_not_verified_url)
end

context 'user fails ipp' do
let!(:enrollment) { create(:in_person_enrollment, :failed, user: user, profile: profile) }

it 'returns true from in_person_prevent_fraud_redirection' do
expect(subject.in_person_prevent_fraud_redirection?).to eq(true)
end

it 'does not redirect a user who has been fraud rejected' do
profile.reject_for_fraud(notify_user: false)

get :show

expect(response).not_to redirect_to(idv_not_verified_url)
Comment thread
gina-yamada marked this conversation as resolved.
end
end

context 'in person proofing and tmx disabled' do
let(:in_person_proofing_enabled) { true }
let(:in_person_proofing_enforce_tmx) { false }
Expand All @@ -105,8 +121,8 @@
and_return(in_person_proofing_enforce_tmx)
end

it 'returns false from in_person_can_perform_fraud_review' do
expect(subject.in_person_can_perform_fraud_review?).to eq(false)
it 'returns false from in_person_prevent_fraud_redirection' do
expect(subject.in_person_prevent_fraud_redirection?).to eq(false)
end
end
end
Expand Down