jam-cloud/ruby/spec/jam_ruby/models/feed_spec.rb

86 lines
2.6 KiB
Ruby

require 'spec_helper'
describe Feed do
it "no result" do
Feed.index().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 = Feed.index()
feeds.length.should == 1
feeds[0].recording == claimed_recording.recording
end
it "two claimed recordings for the same recording should only return one" do
recording = FactoryGirl.create(:claimed_recording).recording
second_track = FactoryGirl.create(:recorded_track, recording: recording)
recording.recorded_tracks << second_track
FactoryGirl.create(:claimed_recording, recording: recording, user: second_track.user)
MusicSessionHistory.delete_all
# verify the mess above only made one recording
Recording.count.should == 1
feeds = Feed.index()
feeds.length.should == 1
end
it "one music session" do
music_session = FactoryGirl.create(:music_session)
feeds = Feed.index()
feeds.length.should == 1
feeds[0].music_session_history == music_session.music_session_history
end
describe "sorting" do
it "sorts by index (date) DESC" do
claimed_recording = FactoryGirl.create(:claimed_recording)
feeds = Feed.index()
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
end
it "sort by plays DESC" do
pending "todo"
claimed_recording1 = FactoryGirl.create(:claimed_recording)
claimed_recording2 = FactoryGirl.create(:claimed_recording)
MusicSessionHistory.delete_all
FactoryGirl.create(:recordings_plays, recording: claimed_recording1.recording, user:claimed_recording1.user)
feeds = Feed.index(:sort => 'plays')
feeds.length.should == 2
feeds[0].recording.should == claimed_recording1.recording
feeds[1].recording.should == claimed_recording2.recording
end
end
describe "pagination" do
it "supports pagination" do
claimed_recording = FactoryGirl.create(:claimed_recording)
options = {limit: 1}
feeds = Feed.index(options)
feeds.length.should == 1
feeds[0].recording.should == claimed_recording.recording
options[:start] = 1
feeds = Feed.index(options)
feeds.length.should == 1
feeds[0].music_session_history.should == claimed_recording.recording.music_session.music_session_history
options[:start] = 2
feeds = Feed.index(options)
feeds.length.should == 0
end
end
end