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

70 lines
2.0 KiB
Ruby

require 'spec_helper'
describe "Find Session", :js => true, :type => :feature, :capybara_feature => true, :slow => true do
subject { page }
before(:all) do
Capybara.javascript_driver = :poltergeist
Capybara.current_driver = Capybara.javascript_driver
Capybara.default_wait_time = 30 # these tests are SLOOOOOW
end
let(:user) { FactoryGirl.create(:user) }
let(:finder) { FactoryGirl.create(:user) }
before(:each) do
UserMailer.deliveries.clear
ActiveMusicSession.delete_all
sign_in_poltergeist user
visit "/client#/findSession"
FactoryGirl.create(:friendship, :user => user, :friend => finder)
end
# when no sessions have been created:
it "shows there are no sessions" do
# verify no sessions are found
expect(page).to have_selector('#sessions-none-found')
end
it "finds another public session" do
create_join_session(user, [finder])
end
describe "listing behavior" do
describe "one slush session" do
before do
@session1 = FactoryGirl.create(:single_user_session)
end
it "find general population user" do
find('#btn-refresh').trigger(:click)
sleep 1
find('div#sessions-other')
page.all('div#sessions-other .found-session').count.should == 1
end
describe "tons of slush sessions" do
before do
20.times do
FactoryGirl.create(:single_user_session)
end
end
it "find many general users" do
find('#btn-refresh').trigger(:click)
sleep 1
find('div#sessions-other')
page.all('div#sessions-other .found-session').count.should == 20
# attempt to scroll down--the end of session list should show, and there should now be 21 items
page.execute_script('jQuery("#findSession .content-body-scroller").scrollTo("100%",100)') #scroll to the bottom of the element
find('#end-of-session-list')
page.all('div#sessions-other .found-session').count.should == 21
end
end
end
end
end