From ebe620a3b321518ced2ab5898f514d10674a0bdd Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Wed, 10 Jun 2015 16:35:39 +0000 Subject: [PATCH] VRFS-3036 fixed performance sample query and test --- ruby/lib/jam_ruby/models/band_search.rb | 10 +++++----- ruby/spec/jam_ruby/models/band_filter_search_spec.rb | 12 ++++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ruby/lib/jam_ruby/models/band_search.rb b/ruby/lib/jam_ruby/models/band_search.rb index 0aa8ad5cc..7f529cc66 100644 --- a/ruby/lib/jam_ruby/models/band_search.rb +++ b/ruby/lib/jam_ruby/models/band_search.rb @@ -173,9 +173,9 @@ module JamRuby def _performance_samples(rel, filter) case filter[KEY_PERF_SAMPLES] when VAL_YES - rel.joins("LEFT OUTER JOIN performance_samples AS ps ON ps.player_id = bands.id AND player_type = '#{self.class.name}'").where(["ps.id IS NOT NULL"]) + rel.joins("LEFT OUTER JOIN performance_samples AS ps ON ps.player_id = bands.id AND player_type = '#{Band.name}'").where(["ps.id IS NOT NULL"]) when VAL_NO - rel.joins("LEFT OUTER JOIN performance_samples AS ps ON ps.player_id = bands.id AND player_type = '#{self.class.name}'").where(["ps.id IS NULL"]) + rel.joins("LEFT OUTER JOIN performance_samples AS ps ON ps.player_id = bands.id AND player_type = '#{Band.name}'").where(["ps.id IS NULL"]) else rel end @@ -246,8 +246,8 @@ module JamRuby rel end - def search_includes(rel) - rel.includes([:instruments]) + def search_includes(rel, subtype=TO_JOIN) + TO_JOIN == subtype ? rel.includes([:instruments]) : rel end def _process_results_page(_results) @@ -340,7 +340,7 @@ module JamRuby @page_number = [page.to_i, 1].max rel = rel.paginate(:page => @page_number, :per_page => self.class::PER_PAGE) - rel = self.search_includes(rel) + rel = self.search_includes(rel, subtype) @page_count = rel.total_pages _process_results_page(rel.all) diff --git a/ruby/spec/jam_ruby/models/band_filter_search_spec.rb b/ruby/spec/jam_ruby/models/band_filter_search_spec.rb index b60b4db81..cbf435618 100644 --- a/ruby/spec/jam_ruby/models/band_filter_search_spec.rb +++ b/ruby/spec/jam_ruby/models/band_filter_search_spec.rb @@ -289,8 +289,16 @@ describe 'Band Search Model' do end it "filters by perform samples" do - pending - PerformanceSample.create(searcher, {player: band, service_type: 'youtube', service_id: 'abc123'}) + filter[BandSearch::KEY_PERF_SAMPLES] = BandSearch::VAL_YES + search.search_results_page(BandSearch::TO_HIRE, filter) + expect(search.results.count).to eq(0) + + ps = PerformanceSample.new + ps.player = band + ps.service_type = 'youtube' + ps.service_id = 'abc123' + ps.save + # PerformanceSample.create(player: band, service_type: 'youtube', service_id: 'abc123') filter[BandSearch::KEY_PERF_SAMPLES] = BandSearch::VAL_YES search.search_results_page(BandSearch::TO_HIRE, filter) expect(search.results.count).to eq(1)