From 2d8748d4ee2661846e19e55ecd2e72e11eb3e7dd Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Sat, 28 Feb 2015 04:24:53 +0000 Subject: [PATCH] VRFS-2795 iterating on tests --- ruby/lib/jam_ruby/models/musician_search.rb | 28 ++++++------------- .../models/musician_search_model_spec.rb | 28 +++++++++++++------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/ruby/lib/jam_ruby/models/musician_search.rb b/ruby/lib/jam_ruby/models/musician_search.rb index 790f362bf..68e308482 100644 --- a/ruby/lib/jam_ruby/models/musician_search.rb +++ b/ruby/lib/jam_ruby/models/musician_search.rb @@ -10,6 +10,7 @@ module JamRuby KEY_GIGS = 'gig_count' KEY_STUDIOS = 'studio_session_count' KEY_AGES = 'ages' + KEY_SKILL = 'skill_level' SORT_VALS = %W{ latency distance } SORT_ORDERS = { @@ -17,11 +18,11 @@ module JamRuby SORT_VALS[1] => 'Distance to Me' } - SKILL_VALS = [ANY_VAL_STR, 'pro', 'amateur'] + SKILL_VALS = [ANY_VAL_INT, 1, 2] SKILL_LEVELS = { SKILL_VALS[0] => 'Any', - SKILL_VALS[1] => 'Pro', - SKILL_VALS[2] => 'Amateur' + SKILL_VALS[1] => 'Amateur', + SKILL_VALS[2] => 'Pro', } GIG_COUNTS = [ANY_VAL_INT, 1, 11, 51, 101] @@ -80,10 +81,10 @@ module JamRuby :sort_order => '', :instruments => [], :interests => '', + :genres => [], KEY_GIGS => 0, KEY_STUDIOS => '', - :genres => [], - :skills => '', + KEY_SKILL => '', KEY_AGES => [] } @@ -185,21 +186,8 @@ module JamRuby end def _skills(rel) - if 0 < (count = json['skill_level'].to_i) - rel = rel.where('skill_level IS NOT NULL') - case count - when SKILL_VALS[1] - rel = rel.where('skill_level >= ? AND skill_level < ', - count, SKILL_VALS[2]) - when SKILL_VALS[2] - rel = rel.where('skill_level >= ? AND skill_level < ', - count, SKILL_VALS[3]) - when SKILL_VALS[3] - rel = rel.where('skill_level >= ? AND skill_level < ', - count, SKILL_VALS[4]) - when SKILL_VALS[4] - rel = rel.where('skill_level >= ?', count) - end + if 0 < (val = json['skill_level'].to_i) + rel = rel.where(['skill_level = ?', val]) end rel end diff --git a/ruby/spec/jam_ruby/models/musician_search_model_spec.rb b/ruby/spec/jam_ruby/models/musician_search_model_spec.rb index 646455e3f..7d5450caf 100644 --- a/ruby/spec/jam_ruby/models/musician_search_model_spec.rb +++ b/ruby/spec/jam_ruby/models/musician_search_model_spec.rb @@ -1,10 +1,10 @@ require 'spec_helper' require 'time_difference' -require 'byebug' describe 'Musician Search Model' do let!(:searcher) { FactoryGirl.create(:austin_user) } let!(:search) { MusicianSearch.create_search(searcher) } + let!(:user_types) { [:austin_user, :dallas_user, :miami_user, :seattle_user] } describe "creates search obj" do it "associates to user" do @@ -72,9 +72,8 @@ describe 'Musician Search Model' do describe "filtering by gig" do before(:all) do User.delete_all - @user_types = [:austin_user, :dallas_user, :miami_user, :seattle_user] MusicianSearch::GIG_RANGES.each do |range| - @user_types.each do |utype| + user_types.each do |utype| FactoryGirl.create(utype, :concert_count => rand(range)) end end @@ -88,7 +87,7 @@ describe 'Musician Search Model' do it "filters by gig count" do MusicianSearch::GIG_COUNTS[1..-1].each do |count| search.update_json_value(MusicianSearch::KEY_GIGS, count) - expect(search.do_search.count).to eq(@user_types.count) + expect(search.do_search.count).to eq(user_types.count) end end end @@ -96,9 +95,8 @@ describe 'Musician Search Model' do describe "filtering by studio" do before(:all) do User.delete_all - @user_types = [:austin_user, :dallas_user, :miami_user, :seattle_user] MusicianSearch::STUDIO_RANGES.each do |range| - @user_types.each do |utype| + user_types.each do |utype| FactoryGirl.create(utype, :studio_session_count => rand(range)) end end @@ -112,13 +110,27 @@ describe 'Musician Search Model' do it "filters by studio count" do MusicianSearch::STUDIO_COUNTS[1..-1].each do |count| search.update_json_value(MusicianSearch::KEY_STUDIOS, count) - expect(search.do_search.count).to eq(@user_types.count) + expect(search.do_search.count).to eq(user_types.count) end end end - it "filters skills" do + describe "filters skills" do + before(:all) do + User.delete_all + MusicianSearch::SKILL_VALS.each do |val| + user_types.each { |utype| FactoryGirl.create(utype, :skill_level => val) } + end + end + + it "get expected number per skill" do + MusicianSearch::SKILL_VALS[1..-1].each do |val| + search.update_json_value(MusicianSearch::KEY_SKILL, val) + expect(search.do_search.count).to eq(user_types.count) + end + end end + it "filters interests" do end it "filters genres" do