diff --git a/app/controllers/users/piv_cac_login_controller.rb b/app/controllers/users/piv_cac_login_controller.rb index a4db6b9f510..1bcb2b34b47 100644 --- a/app/controllers/users/piv_cac_login_controller.rb +++ b/app/controllers/users/piv_cac_login_controller.rb @@ -46,7 +46,6 @@ def render_prompt def process_piv_cac_login result = piv_cac_login_form.submit - analytics.piv_cac_login(**result.to_h) clear_piv_cac_information clear_piv_cac_nonce if result.success? @@ -54,6 +53,7 @@ def process_piv_cac_login else process_invalid_submission end + analytics.piv_cac_login(**result.to_h) end def piv_cac_login_form diff --git a/spec/controllers/users/piv_cac_login_controller_spec.rb b/spec/controllers/users/piv_cac_login_controller_spec.rb index f4d5597f197..c4c80039b27 100644 --- a/spec/controllers/users/piv_cac_login_controller_spec.rb +++ b/spec/controllers/users/piv_cac_login_controller_spec.rb @@ -47,6 +47,7 @@ end context 'with a valid token' do + let(:user) {} let(:service_provider) { create(:service_provider) } let(:sp_session) { { ial: 1, issuer: service_provider.issuer, vtr: vtr } } let(:nonce) { SecureRandom.base64(20) } @@ -65,6 +66,7 @@ subject.session[:sp] = sp_session allow(PivCacService).to receive(:decode_token).with(token) { data } + stub_analytics(user:) get :new, params: { token: token } end diff --git a/spec/support/analytics_helper.rb b/spec/support/analytics_helper.rb index ef5a392230e..0f7e125a0c3 100644 --- a/spec/support/analytics_helper.rb +++ b/spec/support/analytics_helper.rb @@ -1,7 +1,17 @@ module AnalyticsHelper - def stub_analytics - controller.analytics = FakeAnalytics.new - @analytics = controller.analytics + def stub_analytics(user: nil) + analytics = FakeAnalytics.new + + if user + allow(controller).to receive(:analytics) do + expect(controller.analytics_user).to eq(user) + analytics + end + else + controller.analytics = analytics + end + + @analytics = analytics end def unstub_analytics