about summary refs log tree commit diff
path: root/spec/services
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services')
-rw-r--r--spec/services/block_domain_from_account_service_spec.rb19
-rw-r--r--spec/services/notify_service_spec.rb6
2 files changed, 25 insertions, 0 deletions
diff --git a/spec/services/block_domain_from_account_service_spec.rb b/spec/services/block_domain_from_account_service_spec.rb
new file mode 100644
index 000000000..e7ee34372
--- /dev/null
+++ b/spec/services/block_domain_from_account_service_spec.rb
@@ -0,0 +1,19 @@
+require 'rails_helper'
+
+RSpec.describe BlockDomainFromAccountService do
+  let!(:wolf) { Fabricate(:account, username: 'wolf', domain: 'evil.org') }
+  let!(:alice) { Fabricate(:account, username: 'alice') }
+
+  subject { BlockDomainFromAccountService.new }
+
+  it 'creates domain block' do
+    subject.call(alice, 'evil.org')
+    expect(alice.domain_blocking?('evil.org')).to be true
+  end
+
+  it 'purge followers from blocked domain' do
+    wolf.follow!(alice)
+    subject.call(alice, 'evil.org')
+    expect(wolf.following?(alice)).to be false
+  end
+end
diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb
index 29bd741aa..7a66bd0fe 100644
--- a/spec/services/notify_service_spec.rb
+++ b/spec/services/notify_service_spec.rb
@@ -22,6 +22,12 @@ RSpec.describe NotifyService do
     is_expected.to_not change(Notification, :count)
   end
 
+  it 'does still notify when sender\'s domain is blocked but sender is followed' do
+    recipient.block_domain!(sender.domain)
+    recipient.follow!(sender)
+    is_expected.to change(Notification, :count)
+  end
+
   it 'does not notify when sender is silenced and not followed' do
     sender.update(silenced: true)
     is_expected.to_not change(Notification, :count)