forked from railsbridge/bridge_troll
-
Notifications
You must be signed in to change notification settings - Fork 0
/
event_organizer_dashboard_request_spec.rb
123 lines (95 loc) · 3.68 KB
/
event_organizer_dashboard_request_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
require 'rails_helper'
describe "the organizer dashboard" do
before do
@organizer = create(:user)
@event = create(:event, :title => 'RailsBridge for Dik Diks')
@event.organizers << @organizer
sign_in_as(@organizer)
end
it "should have a page" do
visit organize_event_path(@event)
page.should have_content('RailsBridge for Dik Diks')
end
it "lets the user manage organizers" do
visit organize_event_path(@event)
click_link "Manage Organizers"
page.should have_content("Organizer Assignment")
end
it "lets the user assign students and volunteers to sections" do
visit organize_event_path(@event)
click_link "Arrange Class Sections"
page.should have_content("Section Organizer")
end
it "lets the user review sent emails" do
@email = @event.event_emails.create(
subject: 'Hello, Attendees!',
body: 'The event will be fun!',
sender: @organizer
)
visit new_event_email_path(@event)
page.should have_content(@email.subject)
page.should have_content(@email.body)
click_link @email.body
page.should have_content(@email.subject)
page.should have_content(@email.body)
end
it 'lets the user download a CSV of student rsvps' do
visit organize_event_path(@event)
click_link 'Show all Attendee RSVP Details'
click_link 'Download Student Details CSV'
csv_contents = page.source
csv_contents.should include("Student Name")
csv_contents.should include("Class Level")
csv_contents.should include("Operating System")
csv_contents.should include("Occupation")
end
it "lets the user check in attendees", js: true do
user1 = create(:user, first_name: 'Anthony')
user2 = create(:user, first_name: 'Bapp')
session1 = @event.event_sessions.first
session1.update_attribute(:name, 'Installfest')
session2 = create(:event_session, event: @event, name: 'Curriculum')
rsvp1 = create(:rsvp, user: user1, event: @event)
rsvp2 = create(:rsvp, user: user2, event: @event)
rsvp_session1 = create(:rsvp_session, rsvp: rsvp1, event_session: session1)
rsvp_session2 = create(:rsvp_session, rsvp: rsvp2, event_session: session1)
visit organize_event_path(@event)
page.should have_content("Check in for Installfest")
page.should have_content("Check in for Curriculum")
click_link("Check in for Installfest")
page.should have_content(user1.first_name)
within "#rsvp_session_#{rsvp_session1.id}" do
within "#create_rsvp_session_#{rsvp_session1.id}" do
click_on 'Check In'
end
page.should have_content('Checked In!')
end
page.should have_content("Total check-ins for this session: 1")
rsvp_session1.reload.should be_checked_in
rsvp_session2.reload.should_not be_checked_in
within "#rsvp_session_#{rsvp_session2.id}" do
within "#create_rsvp_session_#{rsvp_session2.id}" do
click_on 'Check In'
end
page.should have_content('Checked In!')
end
page.should have_content("Total check-ins for this session: 2")
rsvp_session1.reload.should be_checked_in
rsvp_session2.reload.should be_checked_in
visit event_event_session_checkins_path(@event, session1)
within "#rsvp_session_#{rsvp_session1.id}" do
page.should have_content 'Checked In'
end
within "#rsvp_session_#{rsvp_session2.id}" do
page.should have_content 'Checked In'
end
within "#rsvp_session_#{rsvp_session1.id}" do
within "#destroy_rsvp_session_#{rsvp_session1.id}" do
click_on 'Un-Check In'
end
page.should_not have_content 'Saving'
end
page.should have_content("Total check-ins for this session: 1")
rsvp_session1.reload.should_not be_checked_in
end
end