Skip to content

Commit 77a86a8

Browse files
committed
fix: specify class name for event_hosts association and enhance platform invitation creation test
1 parent 8e8a5fc commit 77a86a8

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

app/models/concerns/better_together/hosts_events.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module HostsEvents
77
extend ActiveSupport::Concern
88

99
included do
10-
has_many :event_hosts, as: :host
10+
has_many :event_hosts, as: :host, class_name: 'BetterTogether::EventHost'
1111
has_many :hosted_events, through: :event_hosts, source: :event
1212
end
1313

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
11
# frozen_string_literal: true
22

33
require 'rails_helper'
4+
5+
RSpec.describe 'creating a platform invitation' do
6+
include BetterTogether::CapybaraFeatureHelpers
7+
8+
let!(:host_platform) do
9+
configure_host_platform
10+
end
11+
let(:invitee_email) { Faker::Internet.unique.email }
12+
13+
before do
14+
capybara_login_as_platform_manager
15+
end
16+
17+
# TODO: This test requires proper authorization setup for platform invitations
18+
# The platform manager role needs index? permission for BetterTogether::PlatformInvitation
19+
# to access the invitations page
20+
scenario 'with valid inputs' do # rubocop:todo RSpec/ExampleLength
21+
visit better_together.platform_platform_invitations_path(host_platform, locale: I18n.locale)
22+
click_button I18n.t('better_together.platform_invitations.new_invitation')
23+
within '#newInvitationModal' do
24+
select 'Platform Invitation', from: 'platform_invitation[type]'
25+
select 'Community Facilitator', from: 'platform_invitation[community_role_id]'
26+
select 'Platform Manager', from: 'platform_invitation[platform_role_id]'
27+
fill_in 'platform_invitation[invitee_email]', with: invitee_email
28+
click_button 'Invite'
29+
end
30+
31+
# After successful creation, we're redirected to the platform show page
32+
expect(page).to have_content(I18n.t('flash.generic.created', resource: I18n.t('resources.invitation')))
33+
34+
# Navigate to invitations to verify the invitation was created
35+
visit better_together.platform_platform_invitations_path(host_platform, locale: I18n.locale)
36+
expect(page).to have_content(invitee_email)
37+
end
38+
end

0 commit comments

Comments
 (0)