diff --git a/app/controllers/idv/by_mail/enter_code_controller.rb b/app/controllers/idv/by_mail/enter_code_controller.rb index 6dbb94bd0d5..d1cb6493a1f 100644 --- a/app/controllers/idv/by_mail/enter_code_controller.rb +++ b/app/controllers/idv/by_mail/enter_code_controller.rb @@ -15,8 +15,16 @@ def index # slightly different copy on this screen. @user_did_not_receive_letter = !!params[:did_not_receive_letter] + gpo_mail = Idv::GpoMail.new(current_user) + @can_request_another_letter = + FeatureManagement.gpo_verification_enabled? && + !gpo_mail.rate_limited? && + !gpo_mail.profile_too_old? + analytics.idv_verify_by_mail_enter_code_visited( source: if @user_did_not_receive_letter then 'gpo_reminder_email' end, + otp_rate_limited: rate_limiter.limited?, + user_can_request_another_letter: @can_request_another_letter, ) if rate_limiter.limited? @@ -28,12 +36,6 @@ def index @gpo_verify_form = GpoVerifyForm.new(user: current_user, pii: pii) @code = session[:last_gpo_confirmation_code] if FeatureManagement.reveal_gpo_code? - gpo_mail = Idv::GpoMail.new(current_user) - @can_request_another_letter = - FeatureManagement.gpo_verification_enabled? && - !gpo_mail.rate_limited? && - !gpo_mail.profile_too_old? - if pii_locked? redirect_to capture_password_url else diff --git a/spec/controllers/idv/by_mail/enter_code_controller_spec.rb b/spec/controllers/idv/by_mail/enter_code_controller_spec.rb index 01a45d74369..ff5674e92c6 100644 --- a/spec/controllers/idv/by_mail/enter_code_controller_spec.rb +++ b/spec/controllers/idv/by_mail/enter_code_controller_spec.rb @@ -43,6 +43,8 @@ expect(@analytics).to have_logged_event( 'IdV: enter verify by mail code visited', source: nil, + otp_rate_limited: false, + user_can_request_another_letter: true, ) expect(response).to render_template('idv/by_mail/enter_code/index') end @@ -74,6 +76,8 @@ expect(@analytics).to have_logged_event( 'IdV: enter verify by mail code visited', source: nil, + user_can_request_another_letter: true, + otp_rate_limited: true, ) end end @@ -85,6 +89,16 @@ action expect(assigns(:can_request_another_letter)).to eql(false) end + + it 'augments analytics event' do + action + expect(@analytics).to have_logged_event( + 'IdV: enter verify by mail code visited', + source: nil, + user_can_request_another_letter: false, + otp_rate_limited: false, + ) + end end context 'user clicked a "i did not receive my letter" link' do @@ -100,6 +114,8 @@ expect(@analytics).to have_logged_event( 'IdV: enter verify by mail code visited', source: 'gpo_reminder_email', + user_can_request_another_letter: true, + otp_rate_limited: false, ) end end