@ -14,34 +14,34 @@ describe StatusThreadingConcern do
let! ( :viewer ) { Fabricate ( :account , username : 'viewer' ) }
let! ( :viewer ) { Fabricate ( :account , username : 'viewer' ) }
it 'returns conversation history' do
it 'returns conversation history' do
expect ( reply3 . ancestors ) . to include ( status , reply1 , reply2 )
expect ( reply3 . ancestors ( 4 ) ) . to include ( status , reply1 , reply2 )
end
end
it 'does not return conversation history user is not allowed to see' do
it 'does not return conversation history user is not allowed to see' do
reply1 . update ( visibility : :private )
reply1 . update ( visibility : :private )
status . update ( visibility : :direct )
status . update ( visibility : :direct )
expect ( reply3 . ancestors ( viewer ) ) . to_not include ( reply1 , status )
expect ( reply3 . ancestors ( 4 , viewer ) ) . to_not include ( reply1 , status )
end
end
it 'does not return conversation history from blocked users' do
it 'does not return conversation history from blocked users' do
viewer . block! ( jeff )
viewer . block! ( jeff )
expect ( reply3 . ancestors ( viewer ) ) . to_not include ( reply1 )
expect ( reply3 . ancestors ( 4 , viewer ) ) . to_not include ( reply1 )
end
end
it 'does not return conversation history from muted users' do
it 'does not return conversation history from muted users' do
viewer . mute! ( jeff )
viewer . mute! ( jeff )
expect ( reply3 . ancestors ( viewer ) ) . to_not include ( reply1 )
expect ( reply3 . ancestors ( 4 , viewer ) ) . to_not include ( reply1 )
end
end
it 'does not return conversation history from silenced and not followed users' do
it 'does not return conversation history from silenced and not followed users' do
jeff . update ( silenced : true )
jeff . update ( silenced : true )
expect ( reply3 . ancestors ( viewer ) ) . to_not include ( reply1 )
expect ( reply3 . ancestors ( 4 , viewer ) ) . to_not include ( reply1 )
end
end
it 'does not return conversation history from blocked domains' do
it 'does not return conversation history from blocked domains' do
viewer . block_domain! ( 'example.com' )
viewer . block_domain! ( 'example.com' )
expect ( reply3 . ancestors ( viewer ) ) . to_not include ( reply2 )
expect ( reply3 . ancestors ( 4 , viewer ) ) . to_not include ( reply2 )
end
end
it 'ignores deleted records' do
it 'ignores deleted records' do
@ -49,10 +49,32 @@ describe StatusThreadingConcern do
second_status = Fabricate ( :status , thread : first_status , account : alice )
second_status = Fabricate ( :status , thread : first_status , account : alice )
# Create cache and delete cached record
# Create cache and delete cached record
second_status . ancestors
second_status . ancestors ( 4 )
first_status . destroy
first_status . destroy
expect ( second_status . ancestors ) . to eq ( [ ] )
expect ( second_status . ancestors ( 4 ) ) . to eq ( [ ] )
end
it 'can return more records than previously requested' do
first_status = Fabricate ( :status , account : bob )
second_status = Fabricate ( :status , thread : first_status , account : alice )
third_status = Fabricate ( :status , thread : second_status , account : alice )
# Create cache
second_status . ancestors ( 1 )
expect ( third_status . ancestors ( 2 ) ) . to eq ( [ first_status , second_status ] )
end
it 'can return fewer records than previously requested' do
first_status = Fabricate ( :status , account : bob )
second_status = Fabricate ( :status , thread : first_status , account : alice )
third_status = Fabricate ( :status , thread : second_status , account : alice )
# Create cache
second_status . ancestors ( 2 )
expect ( third_status . ancestors ( 1 ) ) . to eq ( [ second_status ] )
end
end
end
end