From 3efb3fc5ab2324c86625d08d14fb69feec0112d9 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Thu, 20 Feb 2014 03:23:38 +0000 Subject: [PATCH] * feed test fixes --- ruby/lib/jam_ruby/models/feed.rb | 14 ++++- ruby/spec/jam_ruby/models/feed_spec.rb | 55 ++++++++++--------- web/Gemfile | 2 +- web/app/controllers/api_feeds_controller.rb | 2 +- .../controllers/api_feeds_controller_spec.rb | 1 - web/spec/spec_helper.rb | 5 ++ 6 files changed, 48 insertions(+), 31 deletions(-) diff --git a/ruby/lib/jam_ruby/models/feed.rb b/ruby/lib/jam_ruby/models/feed.rb index 923239b7a..27ba46c68 100644 --- a/ruby/lib/jam_ruby/models/feed.rb +++ b/ruby/lib/jam_ruby/models/feed.rb @@ -10,7 +10,7 @@ module JamRuby TIME_RANGES = { "today" => 1 , "week" => 7, "month" => 30, "all" => 0} TYPE_FILTERS = ['music_session_history', 'recording', 'all'] - def self.index(params = {}) + def self.index(user, params = {}) limit = params[:limit] limit ||= 20 limit = limit.to_i @@ -36,6 +36,11 @@ module JamRuby type_filter ||= 'all' raise "not valid type #{type_filter}" unless TYPE_FILTERS.include?(type_filter) + include_private = params[:include_private] + include_private ||= false # default to false + include_private = false if user.nil? # and force to false if the current user is nil + + query = Feed.includes([:recording]).includes([:music_session_history]).limit(limit) # handle sort @@ -65,6 +70,13 @@ module JamRuby query = query.where('recording_id is not NULL') end + # handle private times + if include_private + + else + + end + if query.length == 0 [query, nil] elsif query.length < limit diff --git a/ruby/spec/jam_ruby/models/feed_spec.rb b/ruby/spec/jam_ruby/models/feed_spec.rb index ff97e9f5d..9c86b974c 100644 --- a/ruby/spec/jam_ruby/models/feed_spec.rb +++ b/ruby/spec/jam_ruby/models/feed_spec.rb @@ -8,14 +8,14 @@ describe Feed do let (:user4) { FactoryGirl.create(:user) } it "no result" do - feeds, start = Feed.index() + feeds, start = Feed.index(user1) feeds.length.should == 0 end it "one claimed recording" do claimed_recording = FactoryGirl.create(:claimed_recording) MusicSessionHistory.delete_all # the factory makes a music_session while making the recording/claimed_recording - feeds, start = Feed.index() + feeds, start = Feed.index(user1) feeds.length.should == 1 feeds[0].recording == claimed_recording.recording end @@ -30,13 +30,13 @@ describe Feed do # verify the mess above only made one recording Recording.count.should == 1 - feeds, start = Feed.index + feeds, start = Feed.index(user1) feeds.length.should == 1 end it "one music session" do music_session = FactoryGirl.create(:music_session) - feeds, start = Feed.index + feeds, start = Feed.index(user1) feeds.length.should == 1 feeds[0].music_session_history == music_session.music_session_history end @@ -45,7 +45,7 @@ describe Feed do it "sorts by index (date) DESC" do claimed_recording = FactoryGirl.create(:claimed_recording) - feeds, start = Feed.index + feeds, start = Feed.index(user1) feeds.length.should == 2 feeds[0].recording.should == claimed_recording.recording feeds[1].music_session_history.should == claimed_recording.recording.music_session.music_session_history @@ -57,13 +57,13 @@ describe Feed do FactoryGirl.create(:recording_play, recording: claimed_recording1.recording, user:claimed_recording1.user) - feeds, start = Feed.index(:sort => 'plays') + feeds, start = Feed.index(user1, :sort => 'plays') feeds.length.should == 4 FactoryGirl.create(:recording_play, recording: claimed_recording2.recording, user:claimed_recording1.user) FactoryGirl.create(:recording_play, recording: claimed_recording2.recording, user:claimed_recording2.user) - feeds, start = Feed.index(:sort => 'plays') + feeds, start = Feed.index(user1, :sort => 'plays') feeds.length.should == 4 feeds[0].recording.should == claimed_recording2.recording feeds[1].recording.should == claimed_recording1.recording @@ -73,7 +73,7 @@ describe Feed do FactoryGirl.create(:music_session_play, music_session: claimed_recording1.recording.music_session.music_session_history, user: user3) - feeds, start = Feed.index(:sort => 'plays') + feeds, start = Feed.index(user1, :sort => 'plays') feeds.length.should == 4 feeds[0].music_session_history.should == claimed_recording1.recording.music_session.music_session_history feeds[1].recording.should == claimed_recording2.recording @@ -86,13 +86,13 @@ describe Feed do FactoryGirl.create(:recording_like, recording: claimed_recording1.recording, user:claimed_recording1.user) - feeds, start = Feed.index(:sort => 'likes') + feeds, start = Feed.index(user1, :sort => 'likes') feeds.length.should == 4 FactoryGirl.create(:recording_like, recording: claimed_recording2.recording, user:claimed_recording1.user) FactoryGirl.create(:recording_like, recording: claimed_recording2.recording, user:claimed_recording2.user) - feeds, start = Feed.index(:sort => 'likes') + feeds, start = Feed.index(user1, :sort => 'likes') feeds.length.should == 4 feeds[0].recording.should == claimed_recording2.recording feeds[1].recording.should == claimed_recording1.recording @@ -101,7 +101,7 @@ describe Feed do FactoryGirl.create(:music_session_like, music_session_history: claimed_recording1.recording.music_session.music_session_history, user: user2) FactoryGirl.create(:music_session_like, music_session_history: claimed_recording1.recording.music_session.music_session_history, user: user3) - feeds, start = Feed.index(:sort => 'likes') + feeds, start = Feed.index(user1, :sort => 'likes') feeds.length.should == 4 feeds[0].music_session_history.should == claimed_recording1.recording.music_session.music_session_history feeds[1].recording.should == claimed_recording2.recording @@ -114,7 +114,7 @@ describe Feed do # creates both recording and history record in feed claimed_recording1 = FactoryGirl.create(:claimed_recording) - feeds, start = Feed.index(:type => 'music_session_history') + feeds, start = Feed.index(user1, :type => 'music_session_history') feeds.length.should == 1 feeds[0].music_session_history == claimed_recording1.recording.music_session.music_session_history end @@ -123,7 +123,7 @@ describe Feed do # creates both recording and history record in feed claimed_recording1 = FactoryGirl.create(:claimed_recording) - feeds, start = Feed.index(:type => 'music_session_history') + feeds, start = Feed.index(user1, :type => 'music_session_history') feeds.length.should == 1 feeds[0].music_session_history == claimed_recording1.recording.music_session.music_session_history end @@ -138,7 +138,7 @@ describe Feed do claimed_recording1.recording.feed.created_at = 32.days.ago claimed_recording1.recording.feed.save! - feeds, start = Feed.index(:type => 'recording') + feeds, start = Feed.index(user1, :type => 'recording') feeds.length.should == 0 end @@ -150,7 +150,7 @@ describe Feed do claimed_recording1.recording.feed.created_at = 25.hours.ago claimed_recording1.recording.feed.save! - feeds, start = Feed.index(:type => 'recording', time_range: 'today') + feeds, start = Feed.index(user1, :type => 'recording', time_range: 'today') feeds.length.should == 0 end @@ -162,7 +162,7 @@ describe Feed do claimed_recording1.recording.feed.created_at = 8.days.ago claimed_recording1.recording.feed.save! - feeds, start = Feed.index(:type => 'recording', time_range: 'week') + feeds, start = Feed.index(user1, :type => 'recording', time_range: 'week') feeds.length.should == 0 end @@ -174,7 +174,7 @@ describe Feed do claimed_recording1.recording.feed.created_at = 700.days.ago claimed_recording1.recording.feed.save! - feeds, start = Feed.index(:type => 'recording', time_range: 'all') + feeds, start = Feed.index(user1, :type => 'recording', time_range: 'all') feeds.length.should == 1 end end @@ -184,17 +184,17 @@ describe Feed do claimed_recording = FactoryGirl.create(:claimed_recording) options = {limit: 1} - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 1 feeds[0].recording.should == claimed_recording.recording options[:start] = start - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 1 feeds[0].music_session_history.should == claimed_recording.recording.music_session.music_session_history options[:start] = start - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 0 start.should be_nil end @@ -205,17 +205,17 @@ describe Feed do FactoryGirl.create(:music_session_like, music_session_history: claimed_recording1.recording.music_session.music_session_history, user: user1) options = {limit: 1, sort: 'likes'} - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 1 feeds[0].music_session_history.should == claimed_recording1.recording.music_session.music_session_history options[:start] = start - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 1 feeds[0].recording.should == claimed_recording1.recording options[:start] = start - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 0 start.should be_nil end @@ -226,21 +226,22 @@ describe Feed do FactoryGirl.create(:music_session_play, music_session: claimed_recording1.recording.music_session.music_session_history, user: user1) options = {limit: 1, sort: 'plays'} - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 1 feeds[0].music_session_history.should == claimed_recording1.recording.music_session.music_session_history options[:start] = start - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 1 feeds[0].recording.should == claimed_recording1.recording options[:start] = start - feeds, start = Feed.index(options) + feeds, start = Feed.index(user1, options) feeds.length.should == 0 start.should be_nil end - end + + end diff --git a/web/Gemfile b/web/Gemfile index 8d6e06166..b6e8db78b 100644 --- a/web/Gemfile +++ b/web/Gemfile @@ -54,7 +54,7 @@ gem 'fog' gem 'haml-rails' gem 'unf' #optional fog dependency gem 'devise', '>= 1.1.2' -#gem 'thin' # the presence of this gem on mac seems to prevent normal startup of rails. +gem 'puma' # the presence of this gem on mac seems to prevent normal startup of rails. gem 'postgres-copy' #group :libv8 do # gem 'libv8', "~> 3.11.8" diff --git a/web/app/controllers/api_feeds_controller.rb b/web/app/controllers/api_feeds_controller.rb index 41493fbba..370f17647 100644 --- a/web/app/controllers/api_feeds_controller.rb +++ b/web/app/controllers/api_feeds_controller.rb @@ -3,7 +3,7 @@ class ApiFeedsController < ApiController respond_to :json def index - @feeds, @next = Feed.index(user: current_user, + @feeds, @next = Feed.index(current_user, start: params[:since], limit: params[:limit], sort: params[:sort], diff --git a/web/spec/controllers/api_feeds_controller_spec.rb b/web/spec/controllers/api_feeds_controller_spec.rb index 61cd5c828..bc581e267 100644 --- a/web/spec/controllers/api_feeds_controller_spec.rb +++ b/web/spec/controllers/api_feeds_controller_spec.rb @@ -41,7 +41,6 @@ describe ApiFeedsController do json = JSON.parse(response.body, :symbolize_names => true) json[:entries].length.should == 1 - music_session = json[:entries][0] music_session[:type].should == 'music_session_history' end diff --git a/web/spec/spec_helper.rb b/web/spec/spec_helper.rb index fcc8f0c3f..ab3f7597c 100644 --- a/web/spec/spec_helper.rb +++ b/web/spec/spec_helper.rb @@ -67,6 +67,11 @@ Spork.prefork do config.visible_text_only = true end + Capybara.server do |app, port| + require 'rack/handler/puma' + Rack::Handler::Puma.run(app, :Port => port) + end + # Requires supporting ruby files with custom matchers and macros, etc, # in spec/support/ and its subdirectories. Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}