From b0c38fe8851efae94b8eca404f32d4747560d411 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 20 Dec 2021 11:57:52 -0800 Subject: [PATCH 1/5] Actual failing test --- spec/features/idv/proofing_components_spec.rb | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 spec/features/idv/proofing_components_spec.rb diff --git a/spec/features/idv/proofing_components_spec.rb b/spec/features/idv/proofing_components_spec.rb new file mode 100644 index 00000000000..9aa92a09c12 --- /dev/null +++ b/spec/features/idv/proofing_components_spec.rb @@ -0,0 +1,52 @@ +require 'rails_helper' + +RSpec.describe 'proofing components' do + include DocAuthHelper + include IdvHelper + include SamlAuthHelper + + let(:email) { 'test@test.com' } + let(:user) { User.find_with_email(email) } + + before do + allow(IdentityConfig.store).to receive(:ruby_workers_idv_enabled). + and_return(ruby_workers_idv_enabled) + allow(IdentityConfig.store).to receive(:doc_auth_enable_presigned_s3_urls). + and_return(doc_auth_enable_presigned_s3_urls) + + visit_idp_from_sp_with_ial2(:oidc) + register_user(email) + + expect(current_path).to eq idv_doc_auth_step_path(step: :welcome) + + complete_all_doc_auth_steps + click_continue + expect(page).to have_current_path('/verify/review', wait: 5) + fill_in 'Password', with: Features::SessionHelper::VALID_PASSWORD + click_continue + click_acknowledge_personal_key + end + + context 'async proofing', js: true do + let(:ruby_workers_idv_enabled) { true } + let(:doc_auth_enable_presigned_s3_urls) { true } + + it 'records proofing components' do + proofing_components = user.active_profile.proofing_components + expect(proofing_components['document_check']).to be_present + expect(proofing_components['document_type']).to be_present + end + end + + context 'sync proofing', js: true do + let(:ruby_workers_idv_enabled) { false } + let(:doc_auth_enable_presigned_s3_urls) { false } + + it 'records proofing components' do + proofing_components = user.active_profile.proofing_components + expect(proofing_components['document_check']).to be_present + expect(proofing_components['document_type']).to be_present + end + end +end + From 83430f81268408b505829299c07cce53c5784825 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 20 Dec 2021 12:03:17 -0800 Subject: [PATCH 2/5] Save proofing components in for synchronous upload via JS (LG-5324) --- app/forms/idv/api_image_upload_form.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/forms/idv/api_image_upload_form.rb b/app/forms/idv/api_image_upload_form.rb index fbd12e9e3b0..f2e2ce78de8 100644 --- a/app/forms/idv/api_image_upload_form.rb +++ b/app/forms/idv/api_image_upload_form.rb @@ -203,6 +203,7 @@ def track_event(event, attributes = {}) def update_analytics(client_response) add_costs(client_response) update_funnel(client_response) + save_proofing_components track_event( Analytics::IDV_DOC_AUTH_SUBMITTED_IMAGE_UPLOAD_VENDOR, client_response.to_h.merge( @@ -248,6 +249,16 @@ def update_funnel(client_response) end end + def save_proofing_components + session_doc_auth_vendor = DocAuthRouter.doc_auth_vendor( + discriminator: document_capture_session_uuid, + ) + Db::ProofingComponent::Add.call(user_id, :document_check, session_doc_auth_vendor) + Db::ProofingComponent::Add.call(user_id, :document_type, 'state_id') + return unless liveness_checking_enabled? + Db::ProofingComponent::Add.call(user_id, :liveness_check, session_doc_auth_vendor) + end + def store_pii(client_response) document_capture_session.store_result_from_response(client_response) end From dd2290ff41aff3c936f54a02dcd3fee07ac395b5 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 20 Dec 2021 12:13:42 -0800 Subject: [PATCH 3/5] make tests slightly more specific --- spec/features/idv/proofing_components_spec.rb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/spec/features/idv/proofing_components_spec.rb b/spec/features/idv/proofing_components_spec.rb index 9aa92a09c12..fb1ad6fa247 100644 --- a/spec/features/idv/proofing_components_spec.rb +++ b/spec/features/idv/proofing_components_spec.rb @@ -33,8 +33,8 @@ it 'records proofing components' do proofing_components = user.active_profile.proofing_components - expect(proofing_components['document_check']).to be_present - expect(proofing_components['document_type']).to be_present + expect(proofing_components['document_check']).to eq('mock') + expect(proofing_components['document_type']).to eq('state_id') end end @@ -44,9 +44,8 @@ it 'records proofing components' do proofing_components = user.active_profile.proofing_components - expect(proofing_components['document_check']).to be_present - expect(proofing_components['document_type']).to be_present + expect(proofing_components['document_check']).to eq('mock') + expect(proofing_components['document_type']).to eq('state_id') end end -end - +end \ No newline at end of file From 820ae852279ec1d6b29df8599a0c99b70571b67c Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 20 Dec 2021 13:12:12 -0800 Subject: [PATCH 4/5] Move logic to the step, re-use code --- app/forms/idv/api_image_upload_form.rb | 11 ----------- app/services/idv/steps/document_capture_step.rb | 1 + 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/app/forms/idv/api_image_upload_form.rb b/app/forms/idv/api_image_upload_form.rb index f2e2ce78de8..fbd12e9e3b0 100644 --- a/app/forms/idv/api_image_upload_form.rb +++ b/app/forms/idv/api_image_upload_form.rb @@ -203,7 +203,6 @@ def track_event(event, attributes = {}) def update_analytics(client_response) add_costs(client_response) update_funnel(client_response) - save_proofing_components track_event( Analytics::IDV_DOC_AUTH_SUBMITTED_IMAGE_UPLOAD_VENDOR, client_response.to_h.merge( @@ -249,16 +248,6 @@ def update_funnel(client_response) end end - def save_proofing_components - session_doc_auth_vendor = DocAuthRouter.doc_auth_vendor( - discriminator: document_capture_session_uuid, - ) - Db::ProofingComponent::Add.call(user_id, :document_check, session_doc_auth_vendor) - Db::ProofingComponent::Add.call(user_id, :document_type, 'state_id') - return unless liveness_checking_enabled? - Db::ProofingComponent::Add.call(user_id, :liveness_check, session_doc_auth_vendor) - end - def store_pii(client_response) document_capture_session.store_result_from_response(client_response) end diff --git a/app/services/idv/steps/document_capture_step.rb b/app/services/idv/steps/document_capture_step.rb index e34a5cee952..5b620509cc9 100644 --- a/app/services/idv/steps/document_capture_step.rb +++ b/app/services/idv/steps/document_capture_step.rb @@ -96,6 +96,7 @@ def log_document_error(get_results_response) def handle_stored_result if stored_result.success? + save_proofing_components extract_pii_from_doc(stored_result) else extra = { stored_result_present: stored_result.present? } From 212ba1452f4b770d2c987ba57b0639352b73695b Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Mon, 20 Dec 2021 13:13:35 -0800 Subject: [PATCH 5/5] lint, newline --- spec/features/idv/proofing_components_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/features/idv/proofing_components_spec.rb b/spec/features/idv/proofing_components_spec.rb index fb1ad6fa247..bc7ca1cd202 100644 --- a/spec/features/idv/proofing_components_spec.rb +++ b/spec/features/idv/proofing_components_spec.rb @@ -48,4 +48,4 @@ expect(proofing_components['document_type']).to eq('state_id') end end -end \ No newline at end of file +end