From 48bde580ae2e0b133d76c043cd6c07787804f441 Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Sun, 12 Jan 2014 01:48:15 -0600 Subject: [PATCH] vrfs988: fixed filter searchtype bug --- ruby/lib/jam_ruby/models/search.rb | 5 +-- .../jam_ruby/models/musician_search_spec.rb | 41 ++++++++++--------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/ruby/lib/jam_ruby/models/search.rb b/ruby/lib/jam_ruby/models/search.rb index 8a213e49a..f1f2fa202 100644 --- a/ruby/lib/jam_ruby/models/search.rb +++ b/ruby/lib/jam_ruby/models/search.rb @@ -93,8 +93,6 @@ module JamRuby end def self.musician_filter(params={}, current_user=nil) - @search_type = :musicians_filter - rel = User.musicians unless (instrument = params[:instrument]).blank? rel = rel.joins("RIGHT JOIN musicians_instruments AS minst ON minst.user_id = users.id") @@ -129,6 +127,7 @@ module JamRuby objs = rel.all srch = Search.new + srch.search_type = :musicians_filter srch.page_num, srch.page_count = page, objs.total_pages srch.musician_results_for_user(objs, current_user) end @@ -257,7 +256,6 @@ module JamRuby end def self.band_filter(params={}, current_user=nil) - @search_type = :band_filter rel = Band.scoped unless (genre = params[:genre]).blank? @@ -292,6 +290,7 @@ module JamRuby objs = rel.all srch = Search.new + srch.search_type = :band_filter srch.page_num, srch.page_count = page, objs.total_pages srch.band_results_for_user(objs, current_user) end diff --git a/ruby/spec/jam_ruby/models/musician_search_spec.rb b/ruby/spec/jam_ruby/models/musician_search_spec.rb index 5459b8b62..b9043be98 100644 --- a/ruby/spec/jam_ruby/models/musician_search_spec.rb +++ b/ruby/spec/jam_ruby/models/musician_search_spec.rb @@ -18,14 +18,15 @@ describe 'Musician search' do # expects all the users num = User.musicians.count results = Search.musician_filter({ :per_page => num }) - expect(results.filter_results.count).to eq(num) + expect(results.results.count).to eq(num) + expect(results.search_type).to be(:musicians_filter) end it "finds musicians with proper ordering" do # the ordering should be create_at since no followers exist expect(UserFollower.count).to eq(0) results = Search.musician_filter({ :per_page => User.musicians.count }) - results.filter_results.each_with_index do |uu, idx| + results.results.each_with_index do |uu, idx| expect(uu.id).to eq(@users.reverse[idx].id) end end @@ -41,10 +42,10 @@ describe 'Musician search' do # refresh the order to ensure it works right @user2.followers.concat([@user3, @user4, @user2]) results = Search.musician_filter({ :per_page => @users.size }, @user3) - expect(results.filter_results[0].id).to eq(@user2.id) + expect(results.results[0].id).to eq(@user2.id) # check the follower count for given entry - expect(results.filter_results[0].search_follow_count.to_i).not_to eq(0) + expect(results.results[0].search_follow_count.to_i).not_to eq(0) # check the follow relationship between current_user and result expect(results.is_follower?(@user2)).to be true end @@ -53,7 +54,7 @@ describe 'Musician search' do # make sure pagination works right params = { :per_page => 2, :page => 1 } results = Search.musician_filter(params) - expect(results.filter_results.count).to be 2 + expect(results.results.count).to be 2 end end @@ -96,7 +97,7 @@ describe 'Musician search' do Friendship.save(@user1.id, @user2.id) # search on user2 results = Search.musician_filter({}, @user2) - friend = results.filter_results.detect { |mm| mm.id == @user1.id } + friend = results.results.detect { |mm| mm.id == @user1.id } expect(friend).to_not be_nil expect(results.friend_count(friend)).to be 1 @user1.reload @@ -115,7 +116,7 @@ describe 'Musician search' do expect(@user1.recordings.detect { |rr| rr == recording }).to_not be_nil results = Search.musician_filter({},@user1) - uu = results.filter_results.detect { |mm| mm.id == @user1.id } + uu = results.results.detect { |mm| mm.id == @user1.id } expect(uu).to_not be_nil expect(results.record_count(uu)).to be 1 @@ -130,28 +131,28 @@ describe 'Musician search' do make_recording(@user1) # order results by num recordings results = Search.musician_filter({ :orderby => 'plays' }, @user2) - expect(results.filter_results[0].id).to eq(@user1.id) + expect(results.results[0].id).to eq(@user1.id) # add more data and make sure order still correct make_recording(@user2); make_recording(@user2) results = Search.musician_filter({ :orderby => 'plays' }, @user2) - expect(results.filter_results[0].id).to eq(@user2.id) + expect(results.results[0].id).to eq(@user2.id) end it "by now playing" do # should get 1 result with 1 active session make_session(@user3) results = Search.musician_filter({ :orderby => 'playing' }, @user2) - expect(results.filter_results.count).to be 1 - expect(results.filter_results.first.id).to eq(@user3.id) + expect(results.results.count).to be 1 + expect(results.results.first.id).to eq(@user3.id) # should get 2 results with 2 active sessions # sort order should be created_at DESC make_session(@user4) results = Search.musician_filter({ :orderby => 'playing' }, @user2) - expect(results.filter_results.count).to be 2 - expect(results.filter_results[0].id).to eq(@user4.id) - expect(results.filter_results[1].id).to eq(@user3.id) + expect(results.results.count).to be 2 + expect(results.results[0].id).to eq(@user4.id) + expect(results.results[1].id).to eq(@user3.id) end end @@ -166,10 +167,10 @@ describe 'Musician search' do ii = @user1.instruments.detect { |inst| inst.id == 'tuba' } expect(ii).to_not be_nil results = Search.musician_filter({ :instrument => ii.id }) - results.filter_results.each do |rr| + results.results.each do |rr| expect(rr.instruments.detect { |inst| inst.id=='tuba' }.id).to eq(ii.id) end - expect(results.filter_results.count).to be 1 + expect(results.results.count).to be 1 end it "finds musicians within a given distance of given location" do @@ -179,26 +180,26 @@ describe 'Musician search' do results = Search.musician_filter({ :per_page => num, :distance => 10, :city => 'Apex' }, @user1) - expect(results.filter_results.count).to be num + expect(results.results.count).to be num # long distance results = Search.musician_filter({ :per_page => num, :distance => 1000, :city => 'Miami', :state => 'FL' }, @user1) - expect(results.filter_results.count).to be num + expect(results.results.count).to be num end it "finds musicians within a given distance of users location" do expect(@user1.lat).to_not be_nil # uses the location of @user1 results = Search.musician_filter({ :distance => 10, :per_page => User.musicians.count }, @user1) - expect(results.filter_results.count).to be User.musicians.count + expect(results.results.count).to be User.musicians.count end it "finds no musicians within a given distance of location" do expect(@user1.lat).to_not be_nil results = Search.musician_filter({ :distance => 10, :city => 'San Francisco' }, @user1) - expect(results.filter_results.count).to be 0 + expect(results.results.count).to be 0 end end