From 7498dbc991ce04b433f4157d303ec2d12acf3f2d Mon Sep 17 00:00:00 2001 From: Mitchell Henke Date: Thu, 5 Dec 2024 08:54:33 -0600 Subject: [PATCH 1/2] Exclude old IAAs from Combined Invoice Supplement Report V2 changelog: Internal, Reporting, Exclude old IAAs from Combined Invoice Supplement Report V2 --- app/jobs/reports/combined_invoice_supplement_report_v2.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/jobs/reports/combined_invoice_supplement_report_v2.rb b/app/jobs/reports/combined_invoice_supplement_report_v2.rb index 454db21f0b4..6de8bb3fa4b 100644 --- a/app/jobs/reports/combined_invoice_supplement_report_v2.rb +++ b/app/jobs/reports/combined_invoice_supplement_report_v2.rb @@ -7,7 +7,9 @@ class CombinedInvoiceSupplementReportV2 < BaseReport REPORT_NAME = 'combined-invoice-supplement-report-v2' def perform(_date) - csv = build_csv(IaaReportingHelper.iaas, IaaReportingHelper.partner_accounts) + # Exclude IAAs that ended more than 90 days ago + iaas = IaaReportingHelper.iaas.filter { |x| x.end_date > 90.days.ago } + csv = build_csv(iaas, IaaReportingHelper.partner_accounts) save_report(REPORT_NAME, csv, extension: 'csv') end From 98b65f21575ed14268308a787986a84a9f3e6de5 Mon Sep 17 00:00:00 2001 From: Mitchell Henke Date: Thu, 5 Dec 2024 09:25:50 -0600 Subject: [PATCH 2/2] Add spec --- ...bined_invoice_supplement_report_v2_spec.rb | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/spec/jobs/reports/combined_invoice_supplement_report_v2_spec.rb b/spec/jobs/reports/combined_invoice_supplement_report_v2_spec.rb index e04ce038453..c933253c950 100644 --- a/spec/jobs/reports/combined_invoice_supplement_report_v2_spec.rb +++ b/spec/jobs/reports/combined_invoice_supplement_report_v2_spec.rb @@ -51,8 +51,13 @@ let(:user2) { create(:user, profiles: [profile2]) } let(:profile2) { build(:profile, verified_at: DateTime.new(2018, 6, 1).utc) } + let(:report_date) { inside_iaa1 } - let(:csv) { CSV.parse(report.perform(Time.zone.today), headers: true) } + let(:csv) do + travel_to report_date do + CSV.parse(report.perform(report_date), headers: true) + end + end before do iaa_order1.integrations << build_integration( @@ -140,6 +145,14 @@ expect(row['issuer_unique_users'].to_i).to eq(2) end end + + context 'when IAA ended more than 90 days ago' do + let(:report_date) { iaa1_range.end + 90.days } + + it 'is excluded from the report' do + expect(csv.length).to eq(0) + end + end end context 'with an IAA with two issuers in September 2020' do @@ -206,7 +219,11 @@ let(:user10) { create(:user, profiles: [profile10]) } let(:profile10) { build(:profile, verified_at: DateTime.new(2015, 1, 1).utc) } - let(:csv) { CSV.parse(report.perform(Time.zone.today), headers: true) } + let(:csv) do + travel_to inside_iaa2 do + CSV.parse(report.perform(Time.zone.today), headers: true) + end + end before do iaa_order2.integrations << build_integration( @@ -385,6 +402,7 @@ let(:partner_account3) { create(:partner_account) } let(:iaa3_range) { DateTime.new(2020, 9, 1).utc..DateTime.new(2021, 8, 30).utc } + let(:inside_iaa3) { iaa3_range.begin + 1.day } let(:gtc3) do create( @@ -417,7 +435,11 @@ let(:user12) { create(:user, profiles: [profile12]) } let(:profile12) { build(:profile, verified_at: DateTime.new(2017, 9, 10).utc) } - let(:csv) { CSV.parse(report.perform(Time.zone.today), headers: true) } + let(:csv) do + travel_to inside_iaa3 do + CSV.parse(report.perform(Time.zone.today), headers: true) + end + end before do iaa_order3.integrations << build_integration(