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
38 changes: 22 additions & 16 deletions spec/controllers/frontend_log_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
describe '#create' do
subject(:action) { post :create, params: params, as: :json }

let(:fake_analytics) { FakeAnalytics.new }
let(:user) { create(:user, :with_phone, with: { phone: '+1 (202) 555-1212' }) }
let(:event) { 'Custom Event' }
let(:payload) { { 'message' => 'To be logged...' } }
Expand All @@ -27,7 +26,7 @@
context 'user is signed in' do
before do
sign_in user
allow(controller).to receive(:analytics).and_return(fake_analytics)
stub_analytics
end

context 'with invalid event name' do
Expand All @@ -51,7 +50,7 @@
it 'succeeds' do
action

expect(fake_analytics).to have_logged_event('IdV: personal key downloaded')
expect(@analytics).to have_logged_event('IdV: personal key downloaded')
expect(response).to have_http_status(:ok)
expect(json[:success]).to eq(true)
end
Expand All @@ -69,7 +68,7 @@
it 'succeeds' do
action

expect(fake_analytics).to have_logged_event(
expect(@analytics).to have_logged_event(
'IdV: in person proofing location submitted',
selected_location: selected_location,
flow_path: flow_path,
Expand All @@ -85,7 +84,7 @@
it 'gracefully sets the missing values to nil' do
action

expect(fake_analytics).to have_logged_event(
expect(@analytics).to have_logged_event(
'IdV: in person proofing location submitted',
flow_path: nil,
selected_location: nil,
Expand All @@ -112,7 +111,7 @@
it 'succeeds' do
action

expect(fake_analytics).to have_logged_event(
expect(@analytics).to have_logged_event(
'IdV: in person proofing location submitted',
selected_location: selected_location,
flow_path: flow_path,
Expand All @@ -127,33 +126,30 @@

context 'invalid param' do
it 'rejects a non-hash payload' do
expect(fake_analytics).not_to receive(:track_event)

params[:payload] = 'abc'
action

expect(@analytics).to_not have_logged_event
expect(response).to have_http_status(:bad_request)
expect(json[:success]).to eq(false)
end

it 'rejects a non-string event' do
expect(fake_analytics).not_to receive(:track_event)

params[:event] = { abc: 'abc' }
action

expect(@analytics).to_not have_logged_event
expect(response).to have_http_status(:bad_request)
expect(json[:success]).to eq(false)
end
end

context 'missing a parameter' do
it 'rejects a request without specifying event' do
expect(fake_analytics).not_to receive(:track_event)

params.delete('event')
action

expect(@analytics).to_not have_logged_event
expect(response).to have_http_status(:bad_request)
expect(json[:success]).to eq(false)
end
Expand All @@ -179,7 +175,7 @@
it 'logs the analytics event' do
action

expect(fake_analytics).to have_logged_event(
expect(@analytics).to have_logged_event(
'IdV: Native camera forced after failed attempts',
field: field,
failed_capture_attempts: failed_capture_attempts,
Expand Down Expand Up @@ -207,7 +203,6 @@
it 'notices the error to NewRelic instead of analytics logger' do
allow_any_instance_of(FrontendErrorForm).to receive(:submit).
and_return(FormResponse.new(success: true))
expect(fake_analytics).not_to receive(:track_event)
expect(NewRelic::Agent).to receive(:notice_error).with(
FrontendErrorLogger::FrontendError.new,
custom_params: {
Expand All @@ -223,6 +218,7 @@

action

expect(@analytics).to_not have_logged_event
expect(response).to have_http_status(:ok)
expect(json[:success]).to eq(true)
end
Expand All @@ -234,8 +230,17 @@

before do
session[:doc_capture_user_id] = user_id
allow(Analytics).to receive(:new).and_return(fake_analytics)
expect(Analytics).to receive(:new).with(hash_including(user: user))
stub_analytics(user:)
end

context 'allowlisted analytics event' do
let(:event) { 'IdV: download personal key' }

it 'logs as the session-associated user' do
action

expect(@analytics).to have_logged_event('IdV: personal key downloaded')
end
end

context 'with invalid event name' do
Expand All @@ -249,6 +254,7 @@

it 'does not commit session' do
action

expect(request.session_options[:skip]).to eql(true)
end
end
Expand Down
11 changes: 5 additions & 6 deletions spec/controllers/idv/how_to_verify_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'rails_helper'

RSpec.describe Idv::HowToVerifyController do
RSpec.describe Idv::HowToVerifyController, allowed_extra_analytics: [:*] do
let(:user) { create(:user) }
let(:enabled) { true }
let(:ab_test_args) do
Expand All @@ -15,7 +15,6 @@
allow(IdentityConfig.store).to receive(:in_person_proofing_enabled) { true }
stub_sign_in(user)
stub_analytics
allow(@analytics).to receive(:track_event)
allow(subject).to receive(:ab_test_analytics_buckets).and_return(ab_test_args)
allow(subject.idv_session).to receive(:service_provider).and_return(service_provider)
subject.idv_session.welcome_visited = true
Expand Down Expand Up @@ -130,7 +129,7 @@
it 'sends analytics_visited event' do
get :show

expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end

context 'agreement step not completed' do
Expand Down Expand Up @@ -164,7 +163,7 @@
it 'logs the invalid value and re-renders the page' do
put :update, params: params

expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
expect(response).to render_template :show
end

Expand Down Expand Up @@ -236,7 +235,7 @@
it 'sends analytics_submitted event when remote proofing is selected' do
put :update, params: params

expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end
end

Expand All @@ -263,7 +262,7 @@
it 'sends analytics_submitted event when remote proofing is selected' do
put :update, params: params

expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end
end
end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'rails_helper'

RSpec.describe Idv::HybridMobile::CaptureCompleteController do
RSpec.describe Idv::HybridMobile::CaptureCompleteController, allowed_extra_analytics: [:*] do
let(:user) { create(:user) }

let!(:document_capture_session) do
Expand Down Expand Up @@ -28,7 +28,6 @@
session[:doc_capture_user_id] = user&.id
session[:document_capture_session_uuid] = document_capture_session_uuid
stub_analytics
allow(@analytics).to receive(:track_event)
allow(subject).to receive(:confirm_document_capture_session_complete).
and_return(true)
allow(subject).to receive(:ab_test_analytics_buckets).and_return(ab_test_args)
Expand Down Expand Up @@ -63,7 +62,7 @@
it 'sends analytics_visited event' do
get :show

expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end

it 'updates DocAuthLog capture_complete_view_count' do
Expand Down
22 changes: 4 additions & 18 deletions spec/controllers/idv/in_person/address_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'rails_helper'

RSpec.describe Idv::InPerson::AddressController do
RSpec.describe Idv::InPerson::AddressController, allowed_extra_analytics: [:*] do
include FlowPolicyHelper
include InPersonHelper

Expand All @@ -16,7 +16,6 @@
}
subject.idv_session.ssn = nil
stub_analytics
allow(@analytics).to receive(:track_event)
end

describe '#step_info' do
Expand Down Expand Up @@ -77,9 +76,6 @@
flow_path: 'standard',
opted_in_to_in_person_proofing: nil,
step: 'address',
pii_like_keypaths: [[:same_address_as_id],
[:proofing_results, :context, :stages, :state_id,
:state_id_jurisdiction]],
same_address_as_id: false,
skip_hybrid_handoff: nil,
}
Expand All @@ -102,9 +98,7 @@
it 'logs idv_in_person_proofing_address_visited' do
get :show

expect(@analytics).to have_received(
:track_event,
).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end

it 'has correct extra_view_variables' do
Expand Down Expand Up @@ -148,9 +142,6 @@
analytics_id: 'In Person Proofing',
flow_path: 'standard',
step: 'address',
pii_like_keypaths: [[:same_address_as_id],
[:proofing_results, :context, :stages, :state_id,
:state_id_jurisdiction]],
same_address_as_id: false,
skip_hybrid_handoff: nil,
current_address_zip_code: '59010',
Expand All @@ -172,9 +163,7 @@
it 'logs idv_in_person_proofing_address_submitted with 5-digit zipcode' do
put :update, params: params

expect(@analytics).to have_received(
:track_event,
).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end

context 'when updating the residential address' do
Expand Down Expand Up @@ -236,9 +225,6 @@
analytics_id: 'In Person Proofing',
flow_path: 'standard',
step: 'address',
pii_like_keypaths: [[:same_address_as_id],
[:proofing_results, :context, :stages, :state_id,
:state_id_jurisdiction]],
same_address_as_id: false,
skip_hybrid_handoff: nil,
current_address_zip_code: '59010',
Expand All @@ -254,7 +240,7 @@
end

it 'logs idv_in_person_proofing_address_submitted without zipcode' do
expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end
end
end
Expand Down
15 changes: 4 additions & 11 deletions spec/controllers/idv/in_person/ssn_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'rails_helper'

RSpec.describe Idv::InPerson::SsnController do
RSpec.describe Idv::InPerson::SsnController, allowed_extra_analytics: [:*] do
let(:pii_from_user) { Idp::Constants::MOCK_IDV_APPLICANT_SAME_ADDRESS_AS_ID_WITH_NO_SSN.dup }

let(:flow_session) do
Expand All @@ -19,7 +19,6 @@
stub_sign_in(user)
subject.user_session['idv/in_person'] = flow_session
stub_analytics
allow(@analytics).to receive(:track_event)
allow(subject).to receive(:ab_test_analytics_buckets).and_return(ab_test_args)
subject.idv_session.flow_path = 'standard'
end
Expand Down Expand Up @@ -49,10 +48,6 @@
flow_path: 'standard',
step: 'ssn',
same_address_as_id: true,
pii_like_keypaths: [
[:same_address_as_id],
[:proofing_results, :context, :stages, :state_id, :state_id_jurisdiction],
],
}.merge(ab_test_args)
end

Expand All @@ -65,7 +60,7 @@
it 'sends analytics_visited event' do
get :show

expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end

it 'updates DocAuthLog ssn_view_count' do
Expand Down Expand Up @@ -123,14 +118,13 @@
success: true,
errors: {},
same_address_as_id: true,
pii_like_keypaths: [[:same_address_as_id], [:errors, :ssn], [:error_details, :ssn]],
}.merge(ab_test_args)
end

it 'sends analytics_submitted event' do
put :update, params: params

expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
end

it 'adds ssn to idv_session' do
Expand Down Expand Up @@ -168,7 +162,6 @@
},
error_details: { ssn: { invalid: true } },
same_address_as_id: true,
pii_like_keypaths: [[:same_address_as_id], [:errors, :ssn], [:error_details, :ssn]],
}.merge(ab_test_args)
end

Expand All @@ -178,7 +171,7 @@
put :update, params: params

expect(response).to have_rendered('idv/shared/ssn')
expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args)
expect(@analytics).to have_logged_event(analytics_name, analytics_args)
expect(response.body).to include('Enter a nine-digit Social Security number')
end

Expand Down
Loading