FIX: Reviews that are auto-hidden by a trusted spam flagger should always have enough weight. (#10284)

FIX: Reviews that are auto-hidden by a trusted spam flagger should always have enough weight. (#10284)

diff --git a/lib/post_action_creator.rb b/lib/post_action_creator.rb
index 62d5768..f64f860 100644
--- a/lib/post_action_creator.rb
+++ b/lib/post_action_creator.rb
@@ -188,13 +188,7 @@ private
     return if !@created_by.staff? && @post.user&.staff?
     return unless PostActionType.auto_action_flag_types.include?(@post_action_name)
 
-    # Special case: If you have TL3 and the user is TL0, and the flag is spam,
-    # hide it immediately.
-    if SiteSetting.high_trust_flaggers_auto_hide_posts &&
-        @post_action_name == :spam &&
-        @created_by.has_trust_level?(TrustLevel[3]) &&
-        @post.user&.trust_level == TrustLevel[0]
-
+    if trusted_spam_flagger?
       @post.hide!(@post_action_type_id, Post.hidden_reasons[:flagged_by_tl3_user])
       return
     end
@@ -205,6 +199,15 @@ private
     end
   end
 
+  # Special case: If you have TL3 and the user is TL0, and the flag is spam,
+  # hide it immediately.
+  def trusted_spam_flagger?
+    SiteSetting.high_trust_flaggers_auto_hide_posts &&
+      @post_action_name == :spam &&
+      @created_by.has_trust_level?(TrustLevel[3]) &&
+      @post.user&.trust_level == TrustLevel[0]
+  end
+
   def create_post_action
     @targets_topic = !!(
       if @flag_topic && @post.topic
@@ -315,7 +318,8 @@ private
       created_at: @created_at,
       take_action: @take_action,
       meta_topic_id: @meta_post&.topic_id,
-      reason: @reason
+      reason: @reason,
+      force_review: trusted_spam_flagger?
     )
   end
 
diff --git a/spec/components/post_action_creator_spec.rb b/spec/components/post_action_creator_spec.rb
index 010455f..c8cf812 100644
--- a/spec/components/post_action_creator_spec.rb
+++ b/spec/components/post_action_creator_spec.rb
@@ -103,11 +103,10 @@ describe PostActionCreator do
       before do
         user.trust_level = TrustLevel[3]
         post.user.trust_level = TrustLevel[0]
+        SiteSetting.high_trust_flaggers_auto_hide_posts = true
       end
 
       it "hides the post when the flagger is a TL3 user and the poster is a TL0 user" do
-        SiteSetting.high_trust_flaggers_auto_hide_posts = true
-
         result = PostActionCreator.create(user, post, :spam)
 
         expect(post.hidden?).to eq(true)
@@ -120,6 +119,17 @@ describe PostActionCreator do
 
         expect(post.hidden?).to eq(false)
       end
+
+      it 'forces the review to surpass the minimum priority threshold' do
+        Reviewable.set_priorities(high: 40.0)
+        SiteSetting.reviewable_default_visibility = 'high'
+        result = PostActionCreator.create(user, post, :spam)
+
+        reviewable = result.reviewable
+        reviewable_score = reviewable.reviewable_scores.find_by(user: user)
+
+        expect(reviewable_score.score).to eq(Reviewable.min_score_for_priority)
+      end
     end
 
     context "existing reviewable" do

GitHub sha: 9fc7bd57

This commit appears in #10284 which was approved by eviltrout. It was merged by romanrizzi.