From 1b2a2f481af257965a661db37ca77e4654483812 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Sun, 1 Feb 2015 20:20:39 -0600 Subject: [PATCH 1/4] VRFS-850 - refactor in_session helper for controlling access --- web/spec/features/in_session_spec.rb | 6 +++--- web/spec/support/utilities.rb | 29 ++++++++++++++++------------ 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/web/spec/features/in_session_spec.rb b/web/spec/features/in_session_spec.rb index 0d4215320..a657162c1 100644 --- a/web/spec/features/in_session_spec.rb +++ b/web/spec/features/in_session_spec.rb @@ -21,7 +21,7 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr description = "Public or private, I cant decide!" create_session(creator: user, description: description) in_client(user) do - set_session_as_private + set_session_access :private end in_client(finder) do emulate_client @@ -31,7 +31,7 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr sign_out_poltergeist(validate: true) end in_client(user) do - set_session_as_public + set_session_access :public end join_session(finder, description: description) # verify the public session is able to be joined end @@ -88,7 +88,7 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr creator, description = create_join_session(user, [finder]) in_client(user) do - set_session_as_private + set_session_access :private formal_leave_by user sign_out_poltergeist user end diff --git a/web/spec/support/utilities.rb b/web/spec/support/utilities.rb index 872bd736a..4b18b791a 100644 --- a/web/spec/support/utilities.rb +++ b/web/spec/support/utilities.rb @@ -465,6 +465,12 @@ def join_session(joiner, options) end +def request_to_join_session(joiner, options) + join_session(joiner, options.merge(no_verify: true)) + +end + + def emulate_client page.driver.headers = { 'User-Agent' => ' JamKazam ' } @@ -529,22 +535,21 @@ def claim_recording(name, description) page.should have_no_selector('h1', text: 'recording finished') end -def set_session_as_private() - find('#session-settings-button').trigger(:click) - within('#session-settings-dialog') do - jk_select("Only RSVP musicians may join", '#session-settings-dialog #session-settings-musician-access') - #select('Private', :from => 'session-settings-musician-access') - find('#session-settings-dialog-submit').trigger(:click) +def set_session_access access_type + case access_type + when :only_rsvp, :private + access_level = "Only RSVP musicians may join" + when :by_approval + access_level = "Musicians may join by approval" + when :at_will, :public, :open + access_level = "Musicians may join at will" + else + access_level = "Musicians may join at will" end - # verify it's dismissed - page.should have_no_selector('h1', text: 'update session settings') -end -def set_session_as_public() find('#session-settings-button').trigger(:click) within('#session-settings-dialog') do - jk_select("Musicians may join at will", '#session-settings-dialog #session-settings-musician-access') - # select('Public', :from => 'session-settings-musician-access') + jk_select(access_level, '#session-settings-dialog #session-settings-musician-access') find('#session-settings-dialog-submit').trigger(:click) end # verify it's dismissed From 4f08e264906d5baeb24760a893933654103f0a3f Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Sun, 1 Feb 2015 20:38:21 -0600 Subject: [PATCH 2/4] helper - request to join session --- web/spec/support/utilities.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/spec/support/utilities.rb b/web/spec/support/utilities.rb index 4b18b791a..81e5c8766 100644 --- a/web/spec/support/utilities.rb +++ b/web/spec/support/utilities.rb @@ -464,10 +464,10 @@ def join_session(joiner, options) end end - def request_to_join_session(joiner, options) join_session(joiner, options.merge(no_verify: true)) - + find('#btn-alert-ok').trigger(:click) + # page.should have_no_selector('h1', text: 'Alert') end From f1b826fbafcab0d424443d5c4f38fb6c2253f2e8 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Sun, 1 Feb 2015 21:40:23 -0600 Subject: [PATCH 3/4] VRFS-2193 - test musician display on Feed view according to new spec --- web/spec/features/feed_spec.rb | 28 ++++++++++++++++++++++++++++ web/spec/support/utilities.rb | 17 ++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/web/spec/features/feed_spec.rb b/web/spec/features/feed_spec.rb index 22a642e75..b1522b1d1 100644 --- a/web/spec/features/feed_spec.rb +++ b/web/spec/features/feed_spec.rb @@ -203,4 +203,32 @@ describe "Feed", :js => true, :type => :feature, :capybara_feature => true do end + describe "session participants behavior (VRFS-2193)" do + let(:creator) { FactoryGirl.create(:user) } + let(:finder_1) { FactoryGirl.create(:user) } + let(:finder_2) { FactoryGirl.create(:user) } + + specify "after session ends all participants are shown in Feed" do + creator, description = create_join_session creator, finder_1 + # feed shows user, finder_1 + formal_leave_by(finder_1) + # feed shows user + join_session(finder_2, description: description) + # feed shows user, finder_2 + formal_leave_by(finder_2) + formal_leave_by(creator) + + leave_music_session_sleep_delay #erg + in_client(creator) { verify_feed_shows_users creator, finder_1, finder_2 } + end + + specify "during session only current participants are shown in Feed" do + creator, description = create_join_session creator, finder_1 + formal_leave_by(finder_1) + join_session(finder_2, description: description) + + leave_music_session_sleep_delay #erg + in_client(finder_1) { verify_feed_shows_users finder_2, creator } + end + end end diff --git a/web/spec/support/utilities.rb b/web/spec/support/utilities.rb index 81e5c8766..fa4638405 100644 --- a/web/spec/support/utilities.rb +++ b/web/spec/support/utilities.rb @@ -481,7 +481,7 @@ def create_join_session(creator, joiners=[], options={}) creator, unique_session_desc = create_session(options) # find session in second client - joiners.each do |joiner| + [*joiners].each do |joiner| join_session(joiner, description: unique_session_desc) end @@ -496,6 +496,21 @@ def formal_leave_by user end end +def verify_feed_shows_users *users + users = [*users] + visit "/client#/feed" + find('.feed-details a.details').trigger(:click) + within 'div.music-session-history-entry' do + users.each do |user| + # confirm user avatar exists + find("a.avatar-tiny[user-id=\"#{user.id}\"][hoveraction=\"musician\"] img") + + # confirm user name exists + find("a.musician-name[user-id=\"#{user.id}\"][hoveraction=\"musician\"]", text: user.name) + end + end +end + def start_recording_with(creator, joiners=[], genre=nil) create_join_session(creator, joiners, {genre: genre}) in_client(creator) do From 413bea651bdd77861d1a54d14041ea4e226e9121 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Sun, 1 Feb 2015 21:43:11 -0600 Subject: [PATCH 4/4] VRFS-2193 - remove seemingly unnecessary waits --- web/spec/features/feed_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/spec/features/feed_spec.rb b/web/spec/features/feed_spec.rb index b1522b1d1..02035dbbf 100644 --- a/web/spec/features/feed_spec.rb +++ b/web/spec/features/feed_spec.rb @@ -218,7 +218,7 @@ describe "Feed", :js => true, :type => :feature, :capybara_feature => true do formal_leave_by(finder_2) formal_leave_by(creator) - leave_music_session_sleep_delay #erg + #leave_music_session_sleep_delay #erg in_client(creator) { verify_feed_shows_users creator, finder_1, finder_2 } end @@ -227,7 +227,7 @@ describe "Feed", :js => true, :type => :feature, :capybara_feature => true do formal_leave_by(finder_1) join_session(finder_2, description: description) - leave_music_session_sleep_delay #erg + #leave_music_session_sleep_delay #erg in_client(finder_1) { verify_feed_shows_users finder_2, creator } end end