From e56404be414ff2fc7ff11171fdd2b31a0658aa11 Mon Sep 17 00:00:00 2001 From: "Renato \"Lond\" Cerqueira" Date: Thu, 18 Jan 2018 16:12:10 +0100 Subject: When must_be_following_dm is on, only notify if recipient dm'ed user (#6283) * When must_be_following_dm is on, only notify if recipient dm'ed user Currently, when must_be_following_dm is on, if a user sends a direct message replying to any status from the recipient, the recipient gets a notification. This should not be the case, as if the recipient posted something publicly this can be used to spam their notifications. * Refactor replied_to_status_is_direct_message? Following suggestion in PR --- spec/services/notify_service_spec.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'spec/services') diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb index eb6210a1e..abe557cf3 100644 --- a/spec/services/notify_service_spec.rb +++ b/spec/services/notify_service_spec.rb @@ -62,10 +62,19 @@ RSpec.describe NotifyService do is_expected.to_not change(Notification, :count) end - context 'if the message chain initiated by recipient' do + context 'if the message chain initiated by recipient, but is not direct message' do let(:reply_to) { Fabricate(:status, account: recipient) } let(:activity) { Fabricate(:mention, account: recipient, status: Fabricate(:status, account: sender, visibility: :direct, thread: reply_to)) } + it 'does not notify' do + is_expected.to_not change(Notification, :count) + end + end + + context 'if the message chain initiated by recipient and is direct message' do + let(:reply_to) { Fabricate(:status, account: recipient, visibility: :direct) } + let(:activity) { Fabricate(:mention, account: recipient, status: Fabricate(:status, account: sender, visibility: :direct, thread: reply_to)) } + it 'does notify' do is_expected.to change(Notification, :count) end -- cgit