logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 0de82dd316839ed329504bfbf9bd0f2d3d96e654
parent: dcfc9b220462533c8bcdebc7ca25a68fa23aaf5f
Author: Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Date:   Sat, 23 Sep 2017 02:33:17 +0900

Do not filter statuses with unknown languages (#5045)


Diffstat:

Mapp/models/status.rb2+-
Mspec/models/status_spec.rb16++++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/app/models/status.rb b/app/models/status.rb @@ -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) diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb @@ -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) }