jam-cloud/web/spec/features/session_detail_spec.rb

90 lines
3.8 KiB
Ruby

require 'spec_helper'
describe "Session Detail", :js => true, :type => :feature, :capybara_feature => true do
let(:austin) { austin_geoip }
let(:dallas) { dallas_geoip }
let(:searcher) { FactoryGirl.create(:user, last_jam_locidispid: austin_geoip[:locidispid], last_jam_addr: austin_ip) }
let(:requested_rsvp_slot) {FactoryGirl.create(:requested_rsvp_slot, user: searcher)}
before(:each) do
SessionInfoComment.delete_all
Notification.delete_all
RsvpRequestRsvpSlot.delete_all
RsvpRequest.delete_all
RsvpSlot.delete_all
Invitation.delete_all
MusicSession.delete_all
stub_const("APP_CONFIG", web_config)
end
it "view pending requests on music session creator side" do
fast_signin(requested_rsvp_slot.music_session.creator, Nav.session_detail(requested_rsvp_slot.music_session))
find('h2', text: 'RSVPs')
find('div.rsvp-help-notice', text: 'You have new RSVPs to review and approve, see details.')
find('#pendingRSVPs .rsvp-table td', text: searcher.name)
find("#pendingRSVPs .rsvp-table img[data-instrument-id='#{requested_rsvp_slot.instrument_id}']")
end
it "view pending requests on music session searcher side" do
fast_signin(searcher, Nav.session_detail(requested_rsvp_slot.music_session))
find('.sessions-header a.cancel-rsvp.button-orange')
find('h2', text: 'RSVPs')
find('div.rsvp-help-notice', text: 'Your RSVP has not been processed by session organizer yet')
end
it "approve pending requests" do
fast_signin(requested_rsvp_slot.music_session.creator, Nav.session_detail(requested_rsvp_slot.music_session))
find('a.approveRsvpRequest[request-id="' + requested_rsvp_slot.rsvp_requests[0].id + '"]').trigger(:click)
find('.session-musicians td', text: searcher.name)
fast_signin(searcher, Nav.session_detail(requested_rsvp_slot.music_session))
find('.session-musicians td', text: searcher.name)
end
it "decline pending requests" do
fast_signin(requested_rsvp_slot.music_session.creator, Nav.session_detail(requested_rsvp_slot.music_session))
find('a.declineRsvpRequest[request-id="' + requested_rsvp_slot.rsvp_requests[0].id + '"]').trigger(:click)
should_not have_selector('td', text: searcher.name)
end
it "cancel current session rsvp" do
fast_signin(requested_rsvp_slot.music_session.creator, Nav.session_detail(requested_rsvp_slot.music_session))
find('a.approveRsvpRequest[request-id="' + requested_rsvp_slot.rsvp_requests[0].id + '"]').trigger(:click)
find('.session-musicians td', text: searcher.name)
find('a.cancelSessionRsvp[request-id="' + requested_rsvp_slot.rsvp_requests[0].id + '"]').trigger(:click)
find('h1', text: 'cancel rsvp')
find('.session-name', text: requested_rsvp_slot.music_session.name)
find('a#btnCancelRsvp').trigger(:click)
should_not have_selector('td', text: searcher.name)
end
it "shows latency information correctly" do
# this will try to show all 6 latency badges. unknown, good, fair, poor, unacceptable, and me
session_creator = requested_rsvp_slot.music_session.creator
session_creator.last_jam_locidispid = dallas_geoip[:locidispid]
session_creator.last_jam_addr = dallas_ip
session_creator.save!
fast_signin(session_creator, Nav.session_detail(requested_rsvp_slot.music_session))
find('h2', text: 'RSVPs')
target_path = Nav.session_detail(requested_rsvp_slot.music_session)
verify_session_detail_score(nil, session_creator, searcher, target_path)
verify_session_detail_score(nil, session_creator, session_creator, target_path)
verify_session_detail_score(3, session_creator, searcher, target_path)
verify_session_detail_score(40, session_creator, searcher, target_path)
verify_session_detail_score(80, session_creator, searcher, target_path)
verify_session_detail_score(110, session_creator, searcher, target_path)
end
end