IZ MS more tests for status message scopes
This commit is contained in:
parent
dd1a1c15bb
commit
008116fa3f
2 changed files with 67 additions and 5 deletions
|
|
@ -12,15 +12,42 @@ describe Post do
|
||||||
|
|
||||||
describe 'scopes' do
|
describe 'scopes' do
|
||||||
describe '.for_a_stream' do
|
describe '.for_a_stream' do
|
||||||
it 'returns the posts ordered and limited by unix time'
|
before do
|
||||||
it 'includes everything in .includes_for_a_stream'
|
time_interval = 1000
|
||||||
it 'is limited to 15 posts'
|
time_past = 1000000
|
||||||
|
@posts = (1..3).map do |n|
|
||||||
|
aspect_to_post = alice.aspects.where(:name => "generic").first
|
||||||
|
post = alice.post :status_message, :text => "#{alice.username} - #{n}", :to => aspect_to_post.id
|
||||||
|
post.created_at = (post.created_at-time_past) - time_interval
|
||||||
|
post.updated_at = (post.updated_at-time_past) + time_interval
|
||||||
|
post.save
|
||||||
|
time_interval += 1000
|
||||||
|
post
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns the posts ordered and limited by unix time' do
|
||||||
|
Post.for_a_stream(Time.now + 1, "created_at").should == @posts
|
||||||
|
Post.for_a_stream(Time.now + 1, "updated_at").should == @posts.reverse
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'includes everything in .includes_for_a_stream' do
|
||||||
|
Post.should_receive(:includes_for_a_stream)
|
||||||
|
Post.for_a_stream(Time.now + 1, "created_at")
|
||||||
|
end
|
||||||
|
it 'is limited to 15 posts' do
|
||||||
|
Post.stub(:by_max_time).and_return(Post)
|
||||||
|
Post.stub(:includes_for_a_stream).and_return(Post)
|
||||||
|
Post.should_receive(:limit)
|
||||||
|
Post.for_a_stream(Time.now + 1, "created_at")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'includes for a stream' do
|
describe 'includes for a stream' do
|
||||||
it 'inclues author profile and mentions'
|
it 'inclues author profile and mentions'
|
||||||
it 'should include photos and root of reshares(but does not)'
|
it 'should include photos and root of reshares(but does not)'
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,46 @@ describe StatusMessage do
|
||||||
|
|
||||||
describe 'scopes' do
|
describe 'scopes' do
|
||||||
describe '.where_person_is_mentioned' do
|
describe '.where_person_is_mentioned' do
|
||||||
it 'returns status messages where the given person is mentioned'
|
it 'returns status messages where the given person is mentioned' do
|
||||||
|
@bo = bob.person
|
||||||
|
@test_string = "@{Daniel; #{@bo.diaspora_handle}} can mention people like Raph"
|
||||||
|
|
||||||
|
Factory.create(:status_message, :text => @test_string )
|
||||||
|
Factory.create(:status_message, :text => @test_string )
|
||||||
|
Factory(:status_message)
|
||||||
|
|
||||||
|
StatusMessage.where_person_is_mentioned(@bo).count.should == 2
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.owned_or_visible_by_user' do
|
describe '.owned_or_visible_by_user' do
|
||||||
it 'scopes status_messages based on posts visisble via contacts or public'
|
before do
|
||||||
|
@you = bob
|
||||||
|
@public_post = Factory(:status_message, :public => true)
|
||||||
|
@your_post = Factory(:status_message, :author => @you.person)
|
||||||
|
@post_from_contact = eve.post(:status_message, :text => 'wooo', :to => eve.aspects.where(:name => 'generic').first)
|
||||||
|
@post_from_stranger = Factory(:status_message, :public => false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns post from your contacts' do
|
||||||
|
StatusMessage.owned_or_visible_by_user(@you).should include(@post_from_contact)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns your posts' do
|
||||||
|
StatusMessage.owned_or_visible_by_user(@you).should include(@your_post)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns public posts' do
|
||||||
|
StatusMessage.owned_or_visible_by_user(@you).should include(@public_post)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'does not return non contacts, non-public post' do
|
||||||
|
StatusMessage.owned_or_visible_by_user(@you).should_not include(@post_from_stranger)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should return the three visible posts' do
|
||||||
|
StatusMessage.owned_or_visible_by_user(@you).count.should == 3
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue