CANCEL
diff --git a/web/spec/features/in_session_spec.rb b/web/spec/features/in_session_spec.rb
index 96716d19f..012aba06f 100644
--- a/web/spec/features/in_session_spec.rb
+++ b/web/spec/features/in_session_spec.rb
@@ -7,7 +7,7 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr
before(:all) do
Capybara.javascript_driver = :poltergeist
Capybara.current_driver = Capybara.javascript_driver
- Capybara.default_wait_time = 30 # these tests are SLOOOOOW
+ Capybara.default_wait_time = 15
end
let(:user) { FactoryGirl.create(:user) }
@@ -15,22 +15,53 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr
before(:each) do
UserMailer.deliveries.clear
+ MusicSession.delete_all
end
- it "isn't possible to see a private session until it is made public", :slow => true do
- MusicSession.delete_all
+ it "can't see a private session until it is made public", :slow => true do
create_session(user, description = "Public or private, I cant decide!")
set_session_as_private(user)
in_client(finder) do
sign_in_poltergeist finder
visit "/client#/findSession"
- # verify private session is not found
- expect(page).to have_selector('#sessions-none-found')
+ expect(page).to have_selector('#sessions-none-found') # verify private session is not found
end
set_session_as_public(user)
join_session(finder, description) # verify the public session is able to be joined
-
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')
+
+ 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
+ expect(page).to have_selector('h1', text: 'audio gear setup')
+ end
+
+ leave_music_session_sleep_delay
+ in_client(finder) { expect(page).to_not have_selector('div.track-label', text: user.name) }
+ end
+
+ it "can see all tracks with four users", :slow => true do
+ others = Array.new
+ 3.times { others.push FactoryGirl.create(:user) }
+ create_join_session(user, others)
+ assert_all_tracks_seen(others.push user)
+ end
+
end
diff --git a/web/spec/features/music_sessions_spec.rb b/web/spec/features/music_sessions_spec.rb
index c3bbec2c8..897dff470 100644
--- a/web/spec/features/music_sessions_spec.rb
+++ b/web/spec/features/music_sessions_spec.rb
@@ -2,13 +2,6 @@ require 'spec_helper'
describe "Music Session", :js => true, :type => :feature, :capybara_feature => true, :slow => true do
- def leave_music_session_sleep_delay
- # add a buffer to ensure WSG has enough time to expire
- sleep_dur = (Rails.application.config.websocket_gateway_connect_time_stale +
- Rails.application.config.websocket_gateway_connect_time_expire) * 1.4
- sleep sleep_dur
- end
-
def leave_music_session_cleanly(usr)
usr.music_session_histories.count.should be == 1
usr.music_session_user_histories.count.should be == 1
diff --git a/web/spec/support/utilities.rb b/web/spec/support/utilities.rb
index fbac1aa66..2db6636c5 100644
--- a/web/spec/support/utilities.rb
+++ b/web/spec/support/utilities.rb
@@ -44,6 +44,14 @@ def sign_out()
end
+def leave_music_session_sleep_delay
+ # add a buffer to ensure WSG has enough time to expire
+ sleep_dur = (Rails.application.config.websocket_gateway_connect_time_stale +
+ Rails.application.config.websocket_gateway_connect_time_expire) * 1.4
+ sleep sleep_dur
+end
+
+
def wait_for_ajax(wait=Capybara.default_wait_time)
wait = wait * 10 #(because we sleep .1)
@@ -72,6 +80,10 @@ def wait_until_curtain_gone
should have_no_selector('.curtain')
end
+def wait_to_see_my_track
+ within('div.session-mytracks') {first('div.session-track.track')}
+end
+
def determine_test_name(metadata, test_name_buffer = '')
description = metadata[:description_args]
if description.kind_of?(Array)
@@ -157,4 +169,15 @@ def set_session_as_public(session_owner)
find('#session-settings-dialog-submit').trigger(:click)
end
end
+end
+
+def assert_all_tracks_seen(users=[])
+ users.each do |user|
+ in_client(user) do
+ users.reject {|u| u==user}.each do |other|
+ expect(page).to have_selector('div.track-label', text: other.name)
+ #puts user.name + " is able to see " + other.name + "\'s track"
+ end
+ end
+ end
end
\ No newline at end of file