From e9b4f61802830fd19a60c7e32d138f623d87e6cc Mon Sep 17 00:00:00 2001 From: Tyler Date: Tue, 11 Feb 2025 08:55:55 -0800 Subject: [PATCH] [API-43666] 526 v2 - Multiple alerts per transaction id (#20671) * select hourly unique claims on transaction id * make test more specific * move select up --- .../report_hourly_unsuccessful_submissions.rb | 1 + .../report_hourly_unsuccessful_submissions_spec.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/modules/claims_api/app/sidekiq/claims_api/report_hourly_unsuccessful_submissions.rb b/modules/claims_api/app/sidekiq/claims_api/report_hourly_unsuccessful_submissions.rb index 0a4a94853a4..09bf9e210c9 100644 --- a/modules/claims_api/app/sidekiq/claims_api/report_hourly_unsuccessful_submissions.rb +++ b/modules/claims_api/app/sidekiq/claims_api/report_hourly_unsuccessful_submissions.rb @@ -90,6 +90,7 @@ def unique_errors_by_transaction_id status: 'errored', cid: '0oagdm49ygCSJTp8X297') last_hour = ClaimsApi::AutoEstablishedClaim + .select('DISTINCT ON(transaction_id) *') .where(created_at: 1.hour.ago..Time.zone.now, status: 'errored', cid: '0oagdm49ygCSJTp8X297') diff --git a/modules/claims_api/spec/sidekiq/report_hourly_unsuccessful_submissions_spec.rb b/modules/claims_api/spec/sidekiq/report_hourly_unsuccessful_submissions_spec.rb index e8fcea87c16..664c4842a27 100644 --- a/modules/claims_api/spec/sidekiq/report_hourly_unsuccessful_submissions_spec.rb +++ b/modules/claims_api/spec/sidekiq/report_hourly_unsuccessful_submissions_spec.rb @@ -87,6 +87,20 @@ subject.perform end + context 'when a va gov claim with the same transaction id errs in the same hour' do + before do + create(:auto_established_claim_va_gov, :errored, created_at: Time.zone.now, transaction_id: 'transaction_1') + create(:auto_established_claim_va_gov, :errored, created_at: 59.minutes.ago, transaction_id: 'transaction_1') + allow_any_instance_of(ClaimsApi::ReportHourlyUnsuccessfulSubmissions).to receive(:notify).and_return(nil) + end + + it 'only alerts on one of the claims' do + subject.perform + + expect(subject.instance_variable_get(:@va_gov_errored_claims)).to have_attributes(length: 1) + end + end + it 'does not alert for claims with specific errors' do allow_any_instance_of(Flipper).to receive(:enabled?).with(:claims_hourly_slack_error_report_enabled) .and_return(true)