Skip to content

Commit df453d9

Browse files
authored
Merge pull request #2604 from mroderick/clean-test-optimizations
Optimize test suite performance
2 parents 6828dcd + 571e718 commit df453d9

11 files changed

Lines changed: 24 additions & 21 deletions

spec/fabricators/chapter_fabricator.rb

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,16 @@
55
city { Faker::Lorem.word }
66
email { Faker::Internet.email }
77
time_zone { 'London' }
8+
end
89

10+
Fabricator(:chapter_with_organiser, from: :chapter) do
911
after_create do |chapter|
1012
member = Fabricate(:member)
1113
member.add_role :organiser, chapter
1214
end
1315
end
1416

1517
Fabricator(:chapter_with_groups, from: :chapter) do
16-
name { Fabricate.sequence(:name) }
17-
city { Faker::Lorem.word }
18-
email { Faker::Internet.email }
19-
time_zone { 'London' }
20-
2118
after_create do |chapter|
2219
Fabricate(:students, chapter: chapter)
2320
Fabricate(:coaches, chapter: chapter)

spec/fabricators/event_fabricator.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
slug { Fabricate.sequence(:slug) }
1717
info Faker::Lorem.sentence
1818
chapters { [Fabricate(:chapter)] }
19+
end
20+
21+
Fabricator(:event_with_sponsorship, from: :event) do
1922
after_build do |event|
2023
Fabricate(:sponsorship, event: event, sponsor: Fabricate(:sponsor))
2124
end

spec/fabricators/group_fabricator.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66

77
Fabricator(:students, from: :group) do
88
name 'Students'
9-
members(count: 5)
9+
members(count: 2)
1010
end
1111

1212
Fabricator(:coaches, from: :group) do
1313
name 'Coaches'
14-
members(count: 5)
14+
members(count: 2)
1515
end

spec/features/admin/chapters_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
end
3232

3333
context '#editing a chapter' do
34-
let(:chapter) { Fabricate(:chapter) }
34+
let(:chapter) { Fabricate(:chapter_with_organiser) }
3535

3636
context 'organiser editing their chapter' do
3737
before do
@@ -146,7 +146,7 @@
146146
end
147147

148148
context 'eligible members tooltip' do
149-
let(:chapter) { Fabricate(:chapter_with_groups) }
149+
let(:chapter) { Fabricate(:chapter) }
150150

151151
before do
152152
login_as_admin(member)

spec/features/admin/event_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
RSpec.feature 'Event creation', type: :feature do
22
let(:member) { Fabricate(:member) }
3-
let(:chapter) { Fabricate(:chapter_with_groups) }
3+
let(:chapter) { Fabricate(:chapter) }
44

55
describe 'an authorised member' do
66
before do

spec/features/admin/filtering_sponsors_list_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
end
77

88
describe 'when visiting the sponsors page' do
9-
let!(:sponsors) { Fabricate.times(2, :sponsor_with_contacts) }
9+
let!(:sponsors) { Fabricate.times(2, :sponsor) }
1010

1111
before(:each) do
1212
visit admin_sponsors_path

spec/features/admin/manage_event_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
RSpec.feature 'Managing events', type: :feature do
22
let(:member) { Fabricate(:member) }
3-
let!(:chapter) { Fabricate(:chapter_with_groups) }
3+
let!(:chapter) { Fabricate(:chapter) }
44
let!(:event) { Fabricate(:event, confirmation_required: true) }
55

66
before do

spec/features/admin/managing_organisers_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
RSpec.feature 'Managing organisers', type: :feature do
22
let(:member) { Fabricate(:member) }
3-
let(:chapter) { Fabricate(:chapter) }
3+
let(:chapter) { Fabricate(:chapter_with_organiser) }
44

55
scenario 'non admin cannot manage organisers' do
66
login(member)

spec/features/admin/meeting_spec.rb

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,20 +104,19 @@
104104
end
105105

106106
scenario 'does not send the invitations to banned members' do
107+
# With 4 total members (2 students + 2 coaches), ban 2 active, 1 expired
108+
# Expected: 4 total - 2 active bans = 2 emails sent
107109
chapter = Fabricate(:chapter_with_groups)
108110
meeting = Fabricate(:meeting, chapters: [chapter])
109-
chapter.members[1..2].each do |member|
111+
chapter.members[0..1].each do |member|
110112
Fabricate(:ban, member: member)
111113
end
112-
permanent_ban = Fabricate.build(:ban, member: chapter.members[3], permanent: true, expires_at: nil)
113-
permanent_ban.save(validate: false)
114-
Fabricate(:ban, member: chapter.members[4], expires_at: Time.zone.today + 2.months)
115-
expired_ban = Fabricate.build(:ban, member: chapter.members[5], expires_at: Time.zone.today - 1.month)
114+
expired_ban = Fabricate.build(:ban, member: chapter.members[2], expires_at: Time.zone.today - 1.month)
116115
expired_ban.save(validate: false)
117116

118117
expect do
119118
visit invite_admin_meeting_path(meeting)
120-
end.to change { ActionMailer::Base.deliveries.count }.by(chapter.members.count - 4)
119+
end.to change { ActionMailer::Base.deliveries.count }.by(2)
121120
end
122121
end
123122
end

spec/features/admin/sponsor_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
end
77

88
context 'Sponsors list' do
9-
let(:sponsor) { Fabricate(:sponsor_with_contacts) }
10-
let(:sponsor2) { Fabricate(:sponsor_with_contacts) }
9+
let(:sponsor) { Fabricate(:sponsor) }
10+
let(:sponsor2) { Fabricate(:sponsor) }
1111

1212
scenario 'can filter by chapter' do
1313
sponsored_workshop = Fabricate(:workshop_sponsor, sponsor: sponsor).workshop

0 commit comments

Comments
 (0)