VRFS-3036 fixed performance sample query and test

This commit is contained in:
Jonathan Kolyer 2015-06-10 16:35:39 +00:00
parent 1ad3f6a79f
commit ebe620a3b3
2 changed files with 15 additions and 7 deletions

View File

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

View File

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