Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
3 changes: 2 additions & 1 deletion app/controllers/concerns/idv/verify_info_concern.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ def shared_update
should_proof_state_id: should_use_aamva?(pii),
trace_id: amzn_trace_id,
user_id: current_user.id,
threatmetrix_session_id: flow_session[:threatmetrix_session_id],
threatmetrix_session_id:
idv_session.threatmetrix_session_id || flow_session[:threatmetrix_session_id],
request_ip: request.remote_ip,
double_address_verification: capture_secondary_id_enabled,
)
Expand Down
1 change: 1 addition & 0 deletions app/services/idv/session.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class Session
resolution_successful
skip_hybrid_handoff
threatmetrix_review_status
threatmetrix_session_id
user_phone_confirmation
vendor_phone_confirmation
verify_info_step_document_capture_session_uuid
Expand Down
8 changes: 6 additions & 2 deletions app/services/idv/steps/threat_metrix_step_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@ def threatmetrix_view_variables
end

def generate_threatmetrix_session_id
flow_session[:threatmetrix_session_id] = SecureRandom.uuid if !updating_ssn?
flow_session[:threatmetrix_session_id]
if !updating_ssn?
idv_session.threatmetrix_session_id = SecureRandom.uuid
# for 50/50 state, to be removed in next deploy
flow_session[:threatmetrix_session_id] = idv_session.threatmetrix_session_id
end
idv_session.threatmetrix_session_id || flow_session[:threatmetrix_session_id]
end

# @return [Array<String>]
Expand Down
13 changes: 13 additions & 0 deletions spec/controllers/idv/in_person/ssn_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@
expect(flow_session[:threatmetrix_session_id]).to_not eq(nil)
end

it 'adds a threatmetrix session id to idv_session' do
get :show
expect(subject.idv_session.threatmetrix_session_id).to_not eq(nil)
end

context 'with an ssn in session' do
let(:referer) { idv_in_person_step_url(step: :address) }
before do
Expand Down Expand Up @@ -180,6 +185,14 @@
subject.threatmetrix_view_variables
expect(flow_session[:threatmetrix_session_id]).to eq(session_id)
end

it 'does not change idv_session threatmetrix_session_id when updating ssn' do
flow_session[:pii_from_user][:ssn] = ssn
put :update, params: params
session_id = subject.idv_session.threatmetrix_session_id
subject.threatmetrix_view_variables
expect(subject.idv_session.threatmetrix_session_id).to eq(session_id)
end
end

context 'invalid ssn' do
Expand Down
16 changes: 15 additions & 1 deletion spec/controllers/idv/ssn_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -222,13 +222,27 @@
expect(flow_session[:threatmetrix_session_id]).to_not eq(nil)
end

it 'does not change threatmetrix_session_id when updating ssn' do
it 'does not change flow_session threatmetrix_session_id when updating ssn' do
flow_session['pii_from_doc'][:ssn] = ssn
put :update, params: params
session_id = flow_session[:threatmetrix_session_id]
subject.threatmetrix_view_variables
expect(flow_session[:threatmetrix_session_id]).to eq(session_id)
end

it 'adds a threatmetrix session id to idv_session' do
put :update, params: params
subject.threatmetrix_view_variables
expect(subject.idv_session.threatmetrix_session_id).to_not eq(nil)
end

it 'does not change idv_session threatmetrix_session_id when updating ssn' do
flow_session['pii_from_doc'][:ssn] = ssn
put :update, params: params
session_id = subject.idv_session.threatmetrix_session_id
subject.threatmetrix_view_variables
expect(subject.idv_session.threatmetrix_session_id).to eq(session_id)
end
end

context 'with invalid ssn' do
Expand Down