fix: Increase the parallelism config to fix flaky tests, revert bad commits (#13410)

The specs break only in Circle CI, we have to figure out the root cause
for the same. At the moment, I have increased the parallelism to fix
this.
This commit is contained in:
Pranav
2026-01-30 12:49:31 -08:00
committed by GitHub
parent 329b749702
commit e9e6de5690
6 changed files with 64 additions and 43 deletions

View File

@@ -16,28 +16,27 @@ class V2::Reports::FirstResponseTimeDistributionBuilder
def build_distribution
results = fetch_aggregated_counts
format_results(results)
map_to_channel_types(results)
end
def fetch_aggregated_counts
ReportingEvent
.joins('INNER JOIN inboxes ON reporting_events.inbox_id = inboxes.id')
.where(account_id: account.id, name: 'first_response')
.where(range_condition)
.group('inboxes.channel_type')
.group(:inbox_id)
.select(
'inboxes.channel_type',
:inbox_id,
bucket_case_statements
)
end
def bucket_case_statements
<<~SQL.squish
COUNT(CASE WHEN reporting_events.value < 3600 THEN 1 END) AS bucket_0_1h,
COUNT(CASE WHEN reporting_events.value >= 3600 AND reporting_events.value < 14400 THEN 1 END) AS bucket_1_4h,
COUNT(CASE WHEN reporting_events.value >= 14400 AND reporting_events.value < 28800 THEN 1 END) AS bucket_4_8h,
COUNT(CASE WHEN reporting_events.value >= 28800 AND reporting_events.value < 86400 THEN 1 END) AS bucket_8_24h,
COUNT(CASE WHEN reporting_events.value >= 86400 THEN 1 END) AS bucket_24h_plus
COUNT(CASE WHEN value < 3600 THEN 1 END) AS bucket_0_1h,
COUNT(CASE WHEN value >= 3600 AND value < 14400 THEN 1 END) AS bucket_1_4h,
COUNT(CASE WHEN value >= 14400 AND value < 28800 THEN 1 END) AS bucket_4_8h,
COUNT(CASE WHEN value >= 28800 AND value < 86400 THEN 1 END) AS bucket_8_24h,
COUNT(CASE WHEN value >= 86400 THEN 1 END) AS bucket_24h_plus
SQL
end
@@ -45,15 +44,25 @@ class V2::Reports::FirstResponseTimeDistributionBuilder
range.present? ? { created_at: range } : {}
end
def format_results(results)
def inbox_channel_types
@inbox_channel_types ||= account.inboxes.pluck(:id, :channel_type).to_h
end
def map_to_channel_types(results)
results.each_with_object({}) do |row, hash|
hash[row.channel_type] = {
'0-1h' => row.bucket_0_1h,
'1-4h' => row.bucket_1_4h,
'4-8h' => row.bucket_4_8h,
'8-24h' => row.bucket_8_24h,
'24h+' => row.bucket_24h_plus
}
channel_type = inbox_channel_types[row.inbox_id]
next unless channel_type
hash[channel_type] ||= empty_buckets
hash[channel_type]['0-1h'] += row.bucket_0_1h
hash[channel_type]['1-4h'] += row.bucket_1_4h
hash[channel_type]['4-8h'] += row.bucket_4_8h
hash[channel_type]['8-24h'] += row.bucket_8_24h
hash[channel_type]['24h+'] += row.bucket_24h_plus
end
end
def empty_buckets
{ '0-1h' => 0, '1-4h' => 0, '4-8h' => 0, '8-24h' => 0, '24h+' => 0 }
end
end