testing updates
This commit is contained in:
parent
114daf2818
commit
2748588caa
|
|
@ -100,7 +100,7 @@ module JamRuby
|
|||
end
|
||||
|
||||
def self.musician_search(params={}, current_user=nil)
|
||||
rel = User.where(:musician => true)
|
||||
rel = User.musicians
|
||||
unless (instrument = params[:instrument]).blank?
|
||||
rel = rel.joins("RIGHT JOIN musicians_instruments AS minst ON minst.user_id = users.id")
|
||||
.where(['minst.instrument_id = ? AND users.id IS NOT NULL', instrument])
|
||||
|
|
@ -130,7 +130,7 @@ module JamRuby
|
|||
end
|
||||
sel_str = 'users.*'
|
||||
case ordering = self.musician_order_param(params)
|
||||
when :plays
|
||||
when :plays # FIXME: double counting?
|
||||
sel_str = "COUNT(records)+COUNT(sessions) AS play_count, #{sel_str}"
|
||||
rel = rel.joins("LEFT JOIN music_sessions AS sessions ON sessions.user_id = users.id")
|
||||
rel = rel.joins("LEFT JOIN recordings AS records ON records.owner_id = users.id")
|
||||
|
|
@ -204,6 +204,8 @@ module JamRuby
|
|||
self
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def _count(musician, key)
|
||||
if mm = @user_counters[musician.id]
|
||||
return mm.detect { |ii| ii.is_a?(Hash) }[key]
|
||||
|
|
@ -211,6 +213,8 @@ module JamRuby
|
|||
0
|
||||
end
|
||||
|
||||
public
|
||||
|
||||
def follow_count(musician)
|
||||
_count(musician, COUNT_FOLLOW)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Musician Search", :js => true, :type => :feature, :capybara_feature => true do
|
||||
|
||||
subject { page }
|
||||
|
||||
let(:user) { FactoryGirl.create(:user) }
|
||||
|
||||
before(:all) do
|
||||
poltergeist_setup
|
||||
end
|
||||
|
||||
before(:each) do
|
||||
sign_in_poltergeist user
|
||||
visit "/client#/musicians"
|
||||
end
|
||||
|
||||
it "shows the musician search page" do
|
||||
expect(page).to have_selector('#find-musician-form')
|
||||
end
|
||||
|
||||
it "shows search results" do
|
||||
expect(page).to have_selector('#musician-filter-results .musician-list-result')
|
||||
end
|
||||
|
||||
it "shows submits query" do
|
||||
find("a#btn-refresh-musicians").trigger(:click)
|
||||
expect(page).to have_selector('#musician-filter-results .musician-list-result')
|
||||
end
|
||||
|
||||
it "shows blank result set" do
|
||||
expect(page).to have_selector('#instrument')
|
||||
find('#instrument').find(:xpath, 'option[2]').select_option
|
||||
find("a#btn-refresh-musicians").trigger(:click)
|
||||
expect(page).to_not have_selector('#musician-filter-results .musician-list-result')
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -94,6 +94,7 @@ Spork.prefork do
|
|||
config.infer_base_class_for_anonymous_controllers = false
|
||||
|
||||
config.include Requests::JsonHelpers, type: :request
|
||||
config.include Requests::FeatureHelpers, type: :feature
|
||||
|
||||
config.before(:suite) do
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,4 +1,15 @@
|
|||
module Requests
|
||||
|
||||
module FeatureHelpers
|
||||
|
||||
def poltergeist_setup
|
||||
Capybara.javascript_driver = :poltergeist
|
||||
Capybara.current_driver = Capybara.javascript_driver
|
||||
Capybara.default_wait_time = 30 # these tests are SLOOOOOW
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
module JsonHelpers
|
||||
|
||||
def json
|
||||
|
|
|
|||
Loading…
Reference in New Issue