adding: bands_spec, link ids, more in_session JS testing and refactoring
This commit is contained in:
parent
b5efad954d
commit
4e273759ba
|
|
@ -96,13 +96,13 @@
|
|||
<script type="text/template" id="template-no-bands">
|
||||
<div class="when-empty">
|
||||
Not In Any Bands:<br/>
|
||||
<a href="#/band/setup">Set Up Your Band</a>
|
||||
<a id="band-setup-link" href="#/band/setup">Set Up Your Band</a>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/template" id="template-more-bands">
|
||||
<div class="when-empty">
|
||||
<a href="#/band/setup">Set Up Another Band</a>
|
||||
<a id="band-setup-link" href="#/band/setup">Set Up Another Band</a>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -21,14 +21,17 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr
|
|||
|
||||
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(user) do
|
||||
set_session_as_private
|
||||
end
|
||||
in_client(finder) do
|
||||
sign_in_poltergeist finder
|
||||
visit "/client#/findSession"
|
||||
expect(page).to have_selector('#sessions-none-found') # verify private session is not found
|
||||
end
|
||||
|
||||
set_session_as_public(user)
|
||||
in_client(user) do
|
||||
set_session_as_public
|
||||
end
|
||||
join_session(finder, description) # verify the public session is able to be joined
|
||||
end
|
||||
|
||||
|
|
@ -57,11 +60,38 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr
|
|||
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
|
||||
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 change will be seen by another participant" do
|
||||
pending "...it doesn't work this way, but i will reuse this pattern"
|
||||
create_join_session(user, [finder])
|
||||
in_client(user) do
|
||||
@new_genre = change_session_genre
|
||||
end
|
||||
in_client(finder) do
|
||||
expect(get_session_genre).to include(@new_genre)
|
||||
end
|
||||
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
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Find Session", :js => true, :type => :feature, :capybara_feature => true, :slow => true do
|
||||
describe "Session Recordings", :js => true, :type => :feature, :capybara_feature => true, :slow => true do
|
||||
|
||||
subject { page }
|
||||
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ end
|
|||
|
||||
|
||||
# this code assumes that there are no music sessions in the database. it should fail on the
|
||||
# find('.join-link') call if > 1 session exists because capybara will complain of multile matches
|
||||
# find('.join-link') call if > 1 session exists because capybara will complain of multiple matches
|
||||
def join_session(joiner, unique_session_desc)
|
||||
|
||||
in_client(joiner) do
|
||||
|
|
@ -141,6 +141,7 @@ def join_session(joiner, unique_session_desc)
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
def create_join_session(creator, joiners=[])
|
||||
creator, unique_session_desc = create_session(creator)
|
||||
|
||||
|
|
@ -151,26 +152,61 @@ def create_join_session(creator, joiners=[])
|
|||
end
|
||||
|
||||
|
||||
def set_session_as_private(session_owner)
|
||||
in_client(session_owner) do
|
||||
find('#session-settings-button').trigger(:click)
|
||||
within('#session-settings-dialog') do
|
||||
def set_session_as_private()
|
||||
find('#session-settings-button').trigger(:click)
|
||||
within('#session-settings-dialog') do
|
||||
select('Private', :from => 'session-settings-musician-access')
|
||||
find('#session-settings-dialog-submit').trigger(:click)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def set_session_as_public(session_owner)
|
||||
in_client(session_owner) do
|
||||
find('#session-settings-button').trigger(:click)
|
||||
within('#session-settings-dialog') do
|
||||
select('Public', :from => 'session-settings-musician-access')
|
||||
find('#session-settings-dialog-submit').trigger(:click)
|
||||
end
|
||||
def set_session_as_public()
|
||||
find('#session-settings-button').trigger(:click)
|
||||
within('#session-settings-dialog') do
|
||||
select('Public', :from => 'session-settings-musician-access')
|
||||
find('#session-settings-dialog-submit').trigger(:click)
|
||||
end
|
||||
end
|
||||
|
||||
def get_options(selector)
|
||||
return find(selector).all('option').collect(&:text).uniq
|
||||
end
|
||||
|
||||
def selected_genres
|
||||
return page.evaluate_script("JK.GenreSelectorHelper.getSelectedGenres('#session-settings-genre')")
|
||||
end
|
||||
|
||||
def change_session_genre #randomly just change it
|
||||
here = 'select.genre-list'
|
||||
#wait_for_ajax
|
||||
find('#session-settings-button').trigger(:click)
|
||||
within('#session-settings-dialog') do
|
||||
wait_for_ajax
|
||||
@new_genre = get_options(here).-(["Select Genre"]).-(selected_genres).sample.to_s
|
||||
select(@new_genre, :from => 'genres')
|
||||
wait_for_ajax
|
||||
find('#session-settings-dialog-submit').trigger(:click)
|
||||
end
|
||||
return @new_genre
|
||||
end
|
||||
|
||||
def get_session_genre
|
||||
here = 'select.genre-list'
|
||||
find('#session-settings-button').trigger(:click)
|
||||
wait_for_ajax
|
||||
@current_genres = selected_genres
|
||||
find('#session-settings-dialog-submit').trigger(:click)
|
||||
return @current_genres.join(" ")
|
||||
end
|
||||
|
||||
def find_session_contains?(text)
|
||||
visit "/client#/findSession"
|
||||
wait_for_ajax
|
||||
within('#find-session-form') do
|
||||
expect(page).to have_text(text)
|
||||
end
|
||||
end
|
||||
|
||||
def assert_all_tracks_seen(users=[])
|
||||
users.each do |user|
|
||||
in_client(user) do
|
||||
|
|
|
|||
Loading…
Reference in New Issue