2013-11-12 04:57:04 +00:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
|
|
describe "In a Session", :js => true, :type => :feature, :capybara_feature => true do
|
|
|
|
|
|
|
|
|
|
subject { page }
|
|
|
|
|
|
|
|
|
|
before(:all) do
|
|
|
|
|
Capybara.javascript_driver = :poltergeist
|
|
|
|
|
Capybara.current_driver = Capybara.javascript_driver
|
2013-11-13 06:58:28 +00:00
|
|
|
Capybara.default_wait_time = 15
|
2013-11-12 04:57:04 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
let(:user) { FactoryGirl.create(:user) }
|
|
|
|
|
let(:finder) { FactoryGirl.create(:user) }
|
|
|
|
|
|
|
|
|
|
before(:each) do
|
|
|
|
|
UserMailer.deliveries.clear
|
2013-11-13 06:58:28 +00:00
|
|
|
MusicSession.delete_all
|
2013-11-12 04:57:04 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
2013-11-13 06:58:28 +00:00
|
|
|
it "can't see a private session until it is made public", :slow => true do
|
2013-12-21 16:35:17 +00:00
|
|
|
pending "fails on build server"
|
2013-11-12 04:57:04 +00:00
|
|
|
create_session(user, description = "Public or private, I cant decide!")
|
2013-12-14 23:53:18 +00:00
|
|
|
in_client(user) do
|
|
|
|
|
set_session_as_private
|
|
|
|
|
end
|
2013-11-12 04:57:04 +00:00
|
|
|
in_client(finder) do
|
|
|
|
|
sign_in_poltergeist finder
|
|
|
|
|
visit "/client#/findSession"
|
2013-11-13 06:58:28 +00:00
|
|
|
expect(page).to have_selector('#sessions-none-found') # verify private session is not found
|
2013-11-12 04:57:04 +00:00
|
|
|
end
|
2013-12-14 23:53:18 +00:00
|
|
|
in_client(user) do
|
|
|
|
|
set_session_as_public
|
|
|
|
|
end
|
2013-11-12 04:57:04 +00:00
|
|
|
join_session(finder, description) # verify the public session is able to be joined
|
2013-11-13 06:58:28 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "can open the Configure Tracks modal, and Add New Audio Gear", :slow => true do
|
|
|
|
|
create_session(user, description = "I'm gonna bail at some point!")
|
|
|
|
|
join_session(finder, description)
|
|
|
|
|
|
|
|
|
|
assert_all_tracks_seen(users=[user, finder])
|
|
|
|
|
|
|
|
|
|
in_client(user) do
|
|
|
|
|
find('#track-settings').trigger(:click)
|
|
|
|
|
wait_for_ajax
|
|
|
|
|
expect(page).to have_selector('h1', text: 'configure tracks')
|
2013-11-12 04:57:04 +00:00
|
|
|
|
2013-11-13 06:58:28 +00:00
|
|
|
find('#btn-add-new-audio-gear').trigger(:click)
|
|
|
|
|
wait_for_ajax
|
|
|
|
|
expect(page).to have_selector('h1', text: 'add new audio gear')
|
|
|
|
|
|
|
|
|
|
find('#btn-leave-session-test').trigger(:click)
|
|
|
|
|
wait_for_ajax
|
2014-02-23 04:41:42 +00:00
|
|
|
expect(page).to have_selector('h1', text: 'audio gear settings')
|
2013-11-13 06:58:28 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
leave_music_session_sleep_delay
|
|
|
|
|
in_client(finder) { expect(page).to_not have_selector('div.track-label', text: user.name) }
|
2013-11-12 04:57:04 +00:00
|
|
|
end
|
2013-11-13 06:58:28 +00:00
|
|
|
|
2013-12-14 23:53:18 +00:00
|
|
|
many = 4
|
|
|
|
|
|
|
|
|
|
it "can see all tracks with #{many} users in a session", :slow => true do
|
|
|
|
|
others = Array.new
|
|
|
|
|
(many-1).times { others.push FactoryGirl.create(:user) }
|
|
|
|
|
create_join_session(user, others)
|
|
|
|
|
assert_all_tracks_seen(others.push user)
|
|
|
|
|
#in_client(others[0]) {page.save_screenshot('tmp/partys_all_here_now.png')}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
it "a user can change the genre and the Find Session screen will be updated" do
|
|
|
|
|
create_session(user)
|
|
|
|
|
in_client(finder) { sign_in_poltergeist finder }
|
|
|
|
|
2.times do
|
|
|
|
|
in_client(user) do
|
|
|
|
|
@new_genre = change_session_genre #randomizes it
|
|
|
|
|
end
|
|
|
|
|
in_client(finder) do
|
|
|
|
|
find_session_contains?(@new_genre)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
2013-11-12 04:57:04 +00:00
|
|
|
end
|