More tests for public timeline method (#3171)
This commit is contained in:
		
							parent
							
								
									419226d1f6
								
							
						
					
					
						commit
						d3be2b582a
					
				@ -401,16 +401,71 @@ RSpec.describe Status, type: :model do
 | 
				
			|||||||
      expect(results).not_to include(silenced_status)
 | 
					      expect(results).not_to include(silenced_status)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    context 'with a local_only option set' do
 | 
					    context 'without local_only option' do
 | 
				
			||||||
      it 'does not include remote instances statuses' do
 | 
					      let(:viewer) { nil }
 | 
				
			||||||
        local_account = Fabricate(:account, domain: nil)
 | 
					 | 
				
			||||||
        remote_account = Fabricate(:account, domain: 'test.com')
 | 
					 | 
				
			||||||
        local_status = Fabricate(:status, account: local_account)
 | 
					 | 
				
			||||||
        remote_status = Fabricate(:status, account: remote_account)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        results = Status.as_public_timeline(nil, true)
 | 
					      let!(:local_account)  { Fabricate(:account, domain: nil) }
 | 
				
			||||||
        expect(results).to include(local_status)
 | 
					      let!(:remote_account) { Fabricate(:account, domain: 'test.com') }
 | 
				
			||||||
        expect(results).not_to include(remote_status)
 | 
					      let!(:local_status)   { Fabricate(:status, account: local_account) }
 | 
				
			||||||
 | 
					      let!(:remote_status)  { Fabricate(:status, account: remote_account) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      subject { Status.as_public_timeline(viewer, false) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      context 'without a viewer' do
 | 
				
			||||||
 | 
					        let(:viewer) { nil }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it 'includes remote instances statuses' do
 | 
				
			||||||
 | 
					          expect(subject).to include(remote_status)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it 'includes local statuses' do
 | 
				
			||||||
 | 
					          expect(subject).to include(local_status)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      context 'with a viewer' do
 | 
				
			||||||
 | 
					        let(:viewer) { Fabricate(:account, username: 'viewer') }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it 'includes remote instances statuses' do
 | 
				
			||||||
 | 
					          expect(subject).to include(remote_status)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it 'includes local statuses' do
 | 
				
			||||||
 | 
					          expect(subject).to include(local_status)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    context 'with a local_only option set' do
 | 
				
			||||||
 | 
					      let!(:local_account)  { Fabricate(:account, domain: nil) }
 | 
				
			||||||
 | 
					      let!(:remote_account) { Fabricate(:account, domain: 'test.com') }
 | 
				
			||||||
 | 
					      let!(:local_status)   { Fabricate(:status, account: local_account) }
 | 
				
			||||||
 | 
					      let!(:remote_status)  { Fabricate(:status, account: remote_account) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      subject { Status.as_public_timeline(viewer, true) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      context 'without a viewer' do
 | 
				
			||||||
 | 
					        let(:viewer) { nil }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it 'does not include remote instances statuses' do
 | 
				
			||||||
 | 
					          expect(subject).to include(local_status)
 | 
				
			||||||
 | 
					          expect(subject).not_to include(remote_status)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      context 'with a viewer' do
 | 
				
			||||||
 | 
					        let(:viewer) { Fabricate(:account, username: 'viewer') }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it 'does not include remote instances statuses' do
 | 
				
			||||||
 | 
					          expect(subject).to include(local_status)
 | 
				
			||||||
 | 
					          expect(subject).not_to include(remote_status)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it 'is not affected by personal domain blocks' do
 | 
				
			||||||
 | 
					          viewer.block_domain!('test.com')
 | 
				
			||||||
 | 
					          expect(subject).to include(local_status)
 | 
				
			||||||
 | 
					          expect(subject).not_to include(remote_status)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user