diff --git a/app/controllers/idv/ssn_controller.rb b/app/controllers/idv/ssn_controller.rb index a1c85b156ab..dffa968fc6d 100644 --- a/app/controllers/idv/ssn_controller.rb +++ b/app/controllers/idv/ssn_controller.rb @@ -18,6 +18,9 @@ def show analytics.idv_doc_auth_ssn_visited(**analytics_arguments) + Funnel::DocAuth::RegisterStep.new(current_user.id, sp_session[:issuer]). + call('ssn', :view, true) + render :show, locals: extra_view_variables end diff --git a/app/jobs/reports/daily_dropoffs_report.rb b/app/jobs/reports/daily_dropoffs_report.rb index cca30f71748..223c0bdb7b7 100644 --- a/app/jobs/reports/daily_dropoffs_report.rb +++ b/app/jobs/reports/daily_dropoffs_report.rb @@ -21,6 +21,10 @@ class DailyDropoffsReport < BaseReport attr_reader :report_date + def initialize(report_date = nil) + @report_date = report_date + end + def perform(report_date) @report_date = report_date diff --git a/spec/controllers/idv/ssn_controller_spec.rb b/spec/controllers/idv/ssn_controller_spec.rb index c0ce278693a..1d2ec862b51 100644 --- a/spec/controllers/idv/ssn_controller_spec.rb +++ b/spec/controllers/idv/ssn_controller_spec.rb @@ -10,7 +10,7 @@ :flow_path => 'standard' } end - let(:user) { build(:user, :with_phone, with: { phone: '+1 (415) 555-0130' }) } + let(:user) { create(:user) } before do allow(subject).to receive(:flow_session).and_return(flow_session) @@ -68,6 +68,14 @@ expect(@analytics).to have_received(:track_event).with(analytics_name, analytics_args) end + it 'updates DocAuthLog ssn_view_count' do + doc_auth_log = DocAuthLog.create(user_id: user.id) + + expect { get :show }.to( + change { doc_auth_log.reload.ssn_view_count }.from(0).to(1), + ) + end + context 'without a flow session' do let(:flow_session) { nil } it 'redirects to doc_auth' do diff --git a/spec/features/idv/analytics_spec.rb b/spec/features/idv/analytics_spec.rb index ba1a8c83be5..9496457689e 100644 --- a/spec/features/idv/analytics_spec.rb +++ b/spec/features/idv/analytics_spec.rb @@ -1,4 +1,5 @@ require 'rails_helper' +require 'csv' feature 'Analytics Regression', js: true do include IdvStepHelper @@ -152,8 +153,21 @@ end it 'records all of the events' do - happy_path_events.each do |event, attributes| - expect(fake_analytics).to have_logged_event(event, attributes) + aggregate_failures 'analytics events' do + happy_path_events.each do |event, attributes| + expect(fake_analytics).to have_logged_event(event, attributes) + end + end + + aggregate_failures 'populates data for each step of the Daily Dropoff Report' do + row = CSV.parse( + Reports::DailyDropoffsReport.new(Time.zone.now).report_body, + headers: true, + ).first + + Reports::DailyDropoffsReport::STEPS.each do |step| + expect(row[step].to_i).to(be > 0, "step #{step} was counted") + end end end end