Do not filter statuses with unknown languages (#5045)
This commit is contained in:
		
							parent
							
								
									dcfc9b2204
								
							
						
					
					
						commit
						0de82dd316
					
				
					 2 changed files with 17 additions and 1 deletions
				
			
		|  | @ -146,7 +146,7 @@ class Status < ApplicationRecord | |||
| 
 | ||||
|   class << self | ||||
|     def not_in_filtered_languages(account) | ||||
|       where.not(language: account.filtered_languages) | ||||
|       where(language: nil).or where.not(language: account.filtered_languages) | ||||
|     end | ||||
| 
 | ||||
|     def as_home_timeline(account) | ||||
|  |  | |||
|  | @ -173,6 +173,22 @@ RSpec.describe Status, type: :model do | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '.not_in_filtered_languages' do | ||||
|     context 'for accounts with language filters' do | ||||
|       let(:user) { Fabricate(:user, filtered_languages: ['en']) } | ||||
| 
 | ||||
|       it 'does not include statuses in filtered languages' do | ||||
|         status = Fabricate(:status, language: 'en') | ||||
|         expect(Status.not_in_filtered_languages(user.account)).not_to include status | ||||
|       end | ||||
| 
 | ||||
|       it 'includes status with unknown language' do | ||||
|         status = Fabricate(:status, language: nil) | ||||
|         expect(Status.not_in_filtered_languages(user.account)).to include status | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '.as_home_timeline' do | ||||
|     let(:account) { Fabricate(:account) } | ||||
|     let(:followed) { Fabricate(:account) } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue