about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
authorDavid Yip <yipdw@member.fsf.org>2017-10-22 00:23:21 -0500
committerDavid Yip <yipdw@member.fsf.org>2017-10-22 00:38:53 -0500
commit19826774f06244b0c84a1973b3a366df0d7f0f5a (patch)
tree3aa464c961df3a7fe820f7acf841ac9d9f33c518 /spec
parentad86c86fa8e0d577b1a6c7411367420e6beea4ea (diff)
keyword mutes: also check spoiler (CW) text and reblogged statuses.
Diffstat (limited to 'spec')
-rw-r--r--spec/lib/feed_manager_spec.rb25
1 files changed, 23 insertions, 2 deletions
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index c9403d616..23ce373f2 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -122,20 +122,41 @@ RSpec.describe FeedManager do
 
       it 'returns true for a status containing a muted keyword' do
         Fabricate('Glitch::KeywordMute', account: alice, keyword: 'take')
-        alice.follow!(bob)
         status = Fabricate(:status, text: 'This is a hot take', account: bob)
 
         expect(FeedManager.instance.filter?(:home, status, alice.id)).to be true
       end
 
+      it 'returns true for a reply containing a muted keyword' do
+        Fabricate('Glitch::KeywordMute', account: alice, keyword: 'take')
+        s1 = Fabricate(:status, text: 'Something', account: alice)
+        s2 = Fabricate(:status, text: 'This is a hot take', thread: s1, account: bob)
+
+        expect(FeedManager.instance.filter?(:home, s2, alice.id)).to be true
+      end
+
+      it 'returns true for a status whose spoiler text contains a muted keyword' do
+        Fabricate('Glitch::KeywordMute', account: alice, keyword: 'take')
+        status = Fabricate(:status, spoiler_text: 'This is a hot take', account: bob)
+
+        expect(FeedManager.instance.filter?(:home, status, alice.id)).to be true
+      end
+
       it 'returns true for a reblog containing a muted keyword' do
         Fabricate('Glitch::KeywordMute', account: alice, keyword: 'take')
-        alice.follow!(jeff)
         status = Fabricate(:status, text: 'This is a hot take', account: bob)
         reblog = Fabricate(:status, reblog: status, account: jeff)
 
         expect(FeedManager.instance.filter?(:home, reblog, alice.id)).to be true
       end
+
+      it 'returns true for a reblog whose spoiler text contains a muted keyword' do
+        Fabricate('Glitch::KeywordMute', account: alice, keyword: 'take')
+        status = Fabricate(:status, spoiler_text: 'This is a hot take', account: bob)
+        reblog = Fabricate(:status, reblog: status, account: jeff)
+
+        expect(FeedManager.instance.filter?(:home, reblog, alice.id)).to be true
+      end
     end
 
     context 'for mentions feed' do