From cba76db53b5e5383baa8663861e04715428cfba3 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 31 Dec 2015 10:51:58 +1100 Subject: [PATCH] FIX: if people link own post, watchers not notified --- app/services/post_alerter.rb | 2 +- spec/services/post_alerter_spec.rb | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/services/post_alerter.rb b/app/services/post_alerter.rb index 4fae678e6fc..716335d5fc4 100644 --- a/app/services/post_alerter.rb +++ b/app/services/post_alerter.rb @@ -283,7 +283,7 @@ class PostAlerter if !linked_post && topic = link.link_topic linked_post = topic.posts(post_number: 1).first end - linked_post && post.user_id != linked_post.user_id && linked_post.user + (linked_post && post.user_id != linked_post.user_id && linked_post.user) || nil end.compact end diff --git a/spec/services/post_alerter_spec.rb b/spec/services/post_alerter_spec.rb index 415c5659504..882e680dc8a 100644 --- a/spec/services/post_alerter_spec.rb +++ b/spec/services/post_alerter_spec.rb @@ -80,11 +80,18 @@ describe PostAlerter do expect(user.notifications.count).to eq(1) - create_post(user: user, raw: "my magic topic\n##{Discourse.base_url}#{post1.url}") + topic = Fabricate(:topic) + + watcher = Fabricate(:user) + TopicUser.create!(user_id: watcher.id, topic_id: topic.id, notification_level: TopicUser.notification_levels[:watching]) + + create_post(topic_id: topic.id, user: user, raw: "my magic topic\n##{Discourse.base_url}#{post1.url}") user.reload expect(user.notifications.count).to eq(1) + expect(watcher.notifications.count).to eq(1) + # don't notify on reflection post1.reload expect(PostAlerter.new.extract_linked_users(post1).length).to eq(0)