Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions spec/system/facilitator_registers_for_event_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
require 'rails_helper'

RSpec.describe "Facilitators can register for an event" do
describe "Facilitators signs in, views the events and register for the events" do
context "When Facilitator is logged in" do
before do
user = create(:user)
create(:facilitator, user: user)

@event = create(:event,
title: "Upcoming Workshop",
start_date: 1.day.from_now,
end_date: 2.days.from_now,
registration_close_date: 1.day.from_now,
publicly_visible: true,
featured: true
)
create(:event,
title: "Another Event",
start_date: 2.days.from_now,
end_date: 3.days.from_now,
registration_close_date: 1.day.from_now,
publicly_visible: true,
featured: true,
created_by: user
)

sign_in user
visit '/'
end

# dashboard registration
it "Register for events from dashboard" do
within("#card_event_#{@event.id}") do
expect(page).to have_button("Register")
click_button 'Register'
end

within("#card_event_#{@event.id}") do
expect(page).to have_css("span.text-xs.bg-green-100.text-green-700.px-2.py-0\\.5.rounded-full",
text: "Registered")
expect(page).to have_button("De-register")
expect(page).to have_no_button("Register")
expect(page).to have_link("Google")
apple_link = find('a', text: "Apple")
expect(apple_link[:download]).to end_with(".ics")
expect(page).to have_link("Office 365")
expect(page).to have_link("Yahoo")

accept_confirm do
click_button "De-register"
end
expect(page).to have_button("Register")
expect(page).to have_no_content("Registered")
end
end

it "navigates to events via community" do
expect(page).to have_button("Community")
click_button 'Community'
within('#community_menu') do
click_link 'Events'
end
expect(page).to have_current_path(events_path)
end

it "navigate to events page" do
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's a second way to navigate to events path -- via the nav > Community > Events. would you add that as an additional it?

expect(page).to have_content("Upcoming Events")

# events
expect(page).to have_content("Upcoming Workshop")
expect(page).to have_content("Another Event")

expect(page).to have_link("View all events")
click_link "View all events"
expect(page).to have_current_path(events_path)
end

it "Register for the event" do
visit events_path
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can register from the dashboard as well -- would you add a second version of "Register for the event" that clicks the button from there?


within("#card_event_#{@event.id}") do
expect(page).to have_button("Register")
click_button 'Register'
end

within("#card_event_#{@event.id}") do
expect(page).to have_css("span.text-xs.bg-green-100.text-green-700.px-2.py-0\\.5.rounded-full",
text: "Registered")
expect(page).to have_button("De-register")
expect(page).to have_no_button("Register")
expect(page).to have_link("Google")
apple_link = find('a', text: "Apple")
expect(apple_link[:download]).to end_with(".ics")
expect(page).to have_link("Office 365")
expect(page).to have_link("Yahoo")

# de-register
accept_confirm do
click_button "De-register"
end
expect(page).to have_button("Register")
expect(page).to have_no_content("Registered")
end
end
end
end
end