testing updates

This commit is contained in:
Jonathan Kolyer 2013-11-25 15:56:54 -06:00
parent 114daf2818
commit 2748588caa
4 changed files with 56 additions and 2 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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