Skip to content

Commit 98df674

Browse files
authored
Merge pull request #2586 from mroderick/fix/nil-group-by
fix: handle nil paginated in fetch_upcoming_events and fetch_past_events
2 parents 337c3f1 + fc93649 commit 98df674

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

app/controllers/events_controller.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ def fetch_upcoming_events
8282
events << Event.upcoming.includes(:venue, :sponsors, :sponsorships, :permissions).all
8383

8484
sorted = events.compact.flatten.sort_by(&:date_and_time)
85+
return [{}, nil] if sorted.empty?
86+
8587
pagy, paginated = pagy(sorted, items: 20)
88+
paginated ||= []
8689

8790
grouped = paginated.group_by(&:date)
8891
decorated = grouped.transform_values { |items| EventPresenter.decorate_collection(items) }
@@ -101,7 +104,10 @@ def fetch_past_events
101104
events << Event.past.includes(:venue, :sponsors, :sponsorships, :permissions).all
102105

103106
sorted = events.compact.flatten.sort_by(&:date_and_time).reverse
107+
return [{}, nil] if sorted.empty?
108+
104109
pagy, paginated = pagy(sorted, items: 20)
110+
paginated ||= []
105111

106112
grouped = paginated.group_by(&:date)
107113
decorated = grouped.transform_values { |items| EventPresenter.decorate_collection(items) }
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
RSpec.describe EventsController do
2+
describe '#fetch_upcoming_events' do
3+
context 'when no events exist' do
4+
it 'returns empty hash and nil pagy' do
5+
expect(controller.send(:fetch_upcoming_events)).to eq([{}, nil])
6+
end
7+
end
8+
end
9+
10+
describe '#fetch_past_events' do
11+
context 'when no events exist' do
12+
it 'returns empty hash and nil pagy' do
13+
expect(controller.send(:fetch_past_events)).to eq([{}, nil])
14+
end
15+
end
16+
end
17+
end

0 commit comments

Comments
 (0)