diff --git a/spec/fabricators/chapter_fabricator.rb b/spec/fabricators/chapter_fabricator.rb index c76632eba..7abeae636 100644 --- a/spec/fabricators/chapter_fabricator.rb +++ b/spec/fabricators/chapter_fabricator.rb @@ -5,7 +5,9 @@ city { Faker::Lorem.word } email { Faker::Internet.email } time_zone { 'London' } +end +Fabricator(:chapter_with_organiser, from: :chapter) do after_create do |chapter| member = Fabricate(:member) member.add_role :organiser, chapter @@ -13,11 +15,6 @@ end Fabricator(:chapter_with_groups, from: :chapter) do - name { Fabricate.sequence(:name) } - city { Faker::Lorem.word } - email { Faker::Internet.email } - time_zone { 'London' } - after_create do |chapter| Fabricate(:students, chapter: chapter) Fabricate(:coaches, chapter: chapter) diff --git a/spec/fabricators/event_fabricator.rb b/spec/fabricators/event_fabricator.rb index 41c579634..d7be3b381 100644 --- a/spec/fabricators/event_fabricator.rb +++ b/spec/fabricators/event_fabricator.rb @@ -16,6 +16,9 @@ slug { Fabricate.sequence(:slug) } info Faker::Lorem.sentence chapters { [Fabricate(:chapter)] } +end + +Fabricator(:event_with_sponsorship, from: :event) do after_build do |event| Fabricate(:sponsorship, event: event, sponsor: Fabricate(:sponsor)) end diff --git a/spec/fabricators/group_fabricator.rb b/spec/fabricators/group_fabricator.rb index 7dac2dfa3..6aa1af794 100644 --- a/spec/fabricators/group_fabricator.rb +++ b/spec/fabricators/group_fabricator.rb @@ -6,10 +6,10 @@ Fabricator(:students, from: :group) do name 'Students' - members(count: 5) + members(count: 2) end Fabricator(:coaches, from: :group) do name 'Coaches' - members(count: 5) + members(count: 2) end diff --git a/spec/features/admin/chapters_spec.rb b/spec/features/admin/chapters_spec.rb index 83a18e012..50e81dd2a 100644 --- a/spec/features/admin/chapters_spec.rb +++ b/spec/features/admin/chapters_spec.rb @@ -31,7 +31,7 @@ end context '#editing a chapter' do - let(:chapter) { Fabricate(:chapter) } + let(:chapter) { Fabricate(:chapter_with_organiser) } context 'organiser editing their chapter' do before do @@ -146,7 +146,7 @@ end context 'eligible members tooltip' do - let(:chapter) { Fabricate(:chapter_with_groups) } + let(:chapter) { Fabricate(:chapter) } before do login_as_admin(member) diff --git a/spec/features/admin/event_spec.rb b/spec/features/admin/event_spec.rb index 280cf6b8c..1154c51bb 100644 --- a/spec/features/admin/event_spec.rb +++ b/spec/features/admin/event_spec.rb @@ -1,6 +1,6 @@ RSpec.feature 'Event creation', type: :feature do let(:member) { Fabricate(:member) } - let(:chapter) { Fabricate(:chapter_with_groups) } + let(:chapter) { Fabricate(:chapter) } describe 'an authorised member' do before do diff --git a/spec/features/admin/filtering_sponsors_list_spec.rb b/spec/features/admin/filtering_sponsors_list_spec.rb index c45987759..17fbcd671 100644 --- a/spec/features/admin/filtering_sponsors_list_spec.rb +++ b/spec/features/admin/filtering_sponsors_list_spec.rb @@ -6,7 +6,7 @@ end describe 'when visiting the sponsors page' do - let!(:sponsors) { Fabricate.times(2, :sponsor_with_contacts) } + let!(:sponsors) { Fabricate.times(2, :sponsor) } before(:each) do visit admin_sponsors_path diff --git a/spec/features/admin/manage_event_spec.rb b/spec/features/admin/manage_event_spec.rb index 2bc82af13..93fcde90e 100644 --- a/spec/features/admin/manage_event_spec.rb +++ b/spec/features/admin/manage_event_spec.rb @@ -1,6 +1,6 @@ RSpec.feature 'Managing events', type: :feature do let(:member) { Fabricate(:member) } - let!(:chapter) { Fabricate(:chapter_with_groups) } + let!(:chapter) { Fabricate(:chapter) } let!(:event) { Fabricate(:event, confirmation_required: true) } before do diff --git a/spec/features/admin/managing_organisers_spec.rb b/spec/features/admin/managing_organisers_spec.rb index fbc1920be..b8d973899 100644 --- a/spec/features/admin/managing_organisers_spec.rb +++ b/spec/features/admin/managing_organisers_spec.rb @@ -1,6 +1,6 @@ RSpec.feature 'Managing organisers', type: :feature do let(:member) { Fabricate(:member) } - let(:chapter) { Fabricate(:chapter) } + let(:chapter) { Fabricate(:chapter_with_organiser) } scenario 'non admin cannot manage organisers' do login(member) diff --git a/spec/features/admin/meeting_spec.rb b/spec/features/admin/meeting_spec.rb index c561270da..99cfb6519 100644 --- a/spec/features/admin/meeting_spec.rb +++ b/spec/features/admin/meeting_spec.rb @@ -104,20 +104,19 @@ end scenario 'does not send the invitations to banned members' do + # With 4 total members (2 students + 2 coaches), ban 2 active, 1 expired + # Expected: 4 total - 2 active bans = 2 emails sent chapter = Fabricate(:chapter_with_groups) meeting = Fabricate(:meeting, chapters: [chapter]) - chapter.members[1..2].each do |member| + chapter.members[0..1].each do |member| Fabricate(:ban, member: member) end - permanent_ban = Fabricate.build(:ban, member: chapter.members[3], permanent: true, expires_at: nil) - permanent_ban.save(validate: false) - Fabricate(:ban, member: chapter.members[4], expires_at: Time.zone.today + 2.months) - expired_ban = Fabricate.build(:ban, member: chapter.members[5], expires_at: Time.zone.today - 1.month) + expired_ban = Fabricate.build(:ban, member: chapter.members[2], expires_at: Time.zone.today - 1.month) expired_ban.save(validate: false) expect do visit invite_admin_meeting_path(meeting) - end.to change { ActionMailer::Base.deliveries.count }.by(chapter.members.count - 4) + end.to change { ActionMailer::Base.deliveries.count }.by(2) end end end diff --git a/spec/features/admin/sponsor_spec.rb b/spec/features/admin/sponsor_spec.rb index 957a82e15..9dc5cd169 100644 --- a/spec/features/admin/sponsor_spec.rb +++ b/spec/features/admin/sponsor_spec.rb @@ -6,8 +6,8 @@ end context 'Sponsors list' do - let(:sponsor) { Fabricate(:sponsor_with_contacts) } - let(:sponsor2) { Fabricate(:sponsor_with_contacts) } + let(:sponsor) { Fabricate(:sponsor) } + let(:sponsor2) { Fabricate(:sponsor) } scenario 'can filter by chapter' do sponsored_workshop = Fabricate(:workshop_sponsor, sponsor: sponsor).workshop diff --git a/spec/features/admin/workshops_spec.rb b/spec/features/admin/workshops_spec.rb index 2d6d5d51c..1c64ca934 100644 --- a/spec/features/admin/workshops_spec.rb +++ b/spec/features/admin/workshops_spec.rb @@ -247,6 +247,10 @@ context 'Labels' do it 'returns a CSV with all workshop participants that can be used to generate the labels' do workshop = Fabricate(:workshop) + # Add an organiser to ensure ORGANISER appears in the CSV + organiser = Fabricate(:member) + organiser.add_role :organiser, workshop.chapter + visit admin_workshop_path(workshop) click_on 'Labels'