* feed test fixes

This commit is contained in:
Seth Call 2014-02-20 03:23:38 +00:00
parent 455ddecaaa
commit 3efb3fc5ab
6 changed files with 48 additions and 31 deletions

View File

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

View File

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

View File

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

View File

@ -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],

View File

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

View File

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