Fix performance of percentile calculation for annual reports (#32765)
This commit is contained in:
		@@ -4,17 +4,20 @@ require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe AnnualReport::Percentiles do
 | 
			
		||||
  describe '#generate' do
 | 
			
		||||
    subject { described_class.new(account, Time.zone.now.year) }
 | 
			
		||||
    subject { described_class.new(account, year) }
 | 
			
		||||
 | 
			
		||||
    let(:year) { Time.zone.now.year }
 | 
			
		||||
 | 
			
		||||
    context 'with an inactive account' do
 | 
			
		||||
      let(:account) { Fabricate :account }
 | 
			
		||||
 | 
			
		||||
      it 'builds a report for an account' do
 | 
			
		||||
        described_class.prepare(year)
 | 
			
		||||
 | 
			
		||||
        expect(subject.generate)
 | 
			
		||||
          .to include(
 | 
			
		||||
            percentiles: include(
 | 
			
		||||
              followers: 0,
 | 
			
		||||
              statuses: 0
 | 
			
		||||
              statuses: 100
 | 
			
		||||
            )
 | 
			
		||||
          )
 | 
			
		||||
      end
 | 
			
		||||
@@ -25,16 +28,15 @@ RSpec.describe AnnualReport::Percentiles do
 | 
			
		||||
 | 
			
		||||
      before do
 | 
			
		||||
        Fabricate.times 2, :status # Others as `account`
 | 
			
		||||
        Fabricate.times 2, :follow # Others as `target_account`
 | 
			
		||||
        Fabricate.times 2, :status, account: account
 | 
			
		||||
        Fabricate.times 2, :follow, target_account: account
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it 'builds a report for an account' do
 | 
			
		||||
        described_class.prepare(year)
 | 
			
		||||
 | 
			
		||||
        expect(subject.generate)
 | 
			
		||||
          .to include(
 | 
			
		||||
            percentiles: include(
 | 
			
		||||
              followers: 50,
 | 
			
		||||
              statuses: 50
 | 
			
		||||
            )
 | 
			
		||||
          )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user