From 6831efe2e9d3e13068bb4de794acfcea5acce28b Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Tue, 12 Sep 2017 15:43:03 -0400 Subject: [PATCH] FIX: no notification was being sent when a post is hidden by community flags --- app/jobs/regular/send_system_message.rb | 2 +- app/models/post_action.rb | 3 ++- spec/jobs/send_system_message_spec.rb | 8 +++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/jobs/regular/send_system_message.rb b/app/jobs/regular/send_system_message.rb index d0dc41ec6f..3eb9f002d7 100644 --- a/app/jobs/regular/send_system_message.rb +++ b/app/jobs/regular/send_system_message.rb @@ -13,7 +13,7 @@ module Jobs return if user.blank? system_message = SystemMessage.new(user) - system_message.create(args[:message_type]) + system_message.create(args[:message_type], args[:message_options]&.symbolize_keys || {}) end end diff --git a/app/models/post_action.rb b/app/models/post_action.rb index 00a196e37a..8c2006c1df 100644 --- a/app/models/post_action.rb +++ b/app/models/post_action.rb @@ -572,7 +572,8 @@ SQL edit_delay: SiteSetting.cooldown_minutes_after_hiding_posts, flag_reason: I18n.t("flag_reasons.#{post_action_type}"), } - SystemMessage.create(post.user, :post_hidden, options) + + Jobs.enqueue_in(5.seconds, :send_system_message, user_id: post.user.id, message_type: :post_hidden, message_options: options) end end diff --git a/spec/jobs/send_system_message_spec.rb b/spec/jobs/send_system_message_spec.rb index 78f739477c..23723e8d03 100644 --- a/spec/jobs/send_system_message_spec.rb +++ b/spec/jobs/send_system_message_spec.rb @@ -16,10 +16,16 @@ describe Jobs::SendSystemMessage do let(:user) { Fabricate(:user) } it "should call SystemMessage.create" do - SystemMessage.any_instance.expects(:create).with('welcome_invite') + SystemMessage.any_instance.expects(:create).with('welcome_invite', {}) Jobs::SendSystemMessage.new.execute(user_id: user.id, message_type: 'welcome_invite') end + it "can send message parameters" do + options = { url: "/t/no-spammers-please/123", edit_delay: 5, flag_reason: "Flagged by community" } + SystemMessage.any_instance.expects(:create).with('post_hidden', options) + Jobs::SendSystemMessage.new.execute(user_id: user.id, message_type: 'post_hidden', message_options: options) + end + end end