From 67e7c2c5334e12ed00addc5a55e7ea137ecdb0eb Mon Sep 17 00:00:00 2001 From: Andrei Prigorshnev Date: Tue, 26 Mar 2024 19:46:01 +0400 Subject: [PATCH] Fix --- lib/assigner.rb | 3 +-- spec/lib/assigner_spec.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/assigner.rb b/lib/assigner.rb index 65efca02..a0343849 100644 --- a/lib/assigner.rb +++ b/lib/assigner.rb @@ -547,8 +547,7 @@ def already_assigned?(assign_to, type, note, status) end def reassign? - return false if !@target.is_a?(Topic) - Assignment.exists?(topic_id: @target.id, target: @target, active: true) + Assignment.exists?(target: @target, active: true) end def no_assignee_change?(assignee) diff --git a/spec/lib/assigner_spec.rb b/spec/lib/assigner_spec.rb index fb2b8f58..d37d4c08 100644 --- a/spec/lib/assigner_spec.rb +++ b/spec/lib/assigner_spec.rb @@ -264,6 +264,20 @@ def assigned_to?(assignee) expect(second_assign[:success]).to eq(true) end + it "assignments limit doesn't prevent from reassigning a post" do + posts = (described_class::ASSIGNMENTS_PER_TOPIC_LIMIT).times.map do + Fabricate(:post, topic: topic) + end + + posts.each do |post| + user = Fabricate(:moderator) + described_class.new(post, admin).assign(user) + end + + status = described_class.new(posts.first, admin).assign(Fabricate(:moderator)) + expect(status[:success]).to eq(true) + end + context "when 'allow_self_reassign' is false" do subject(:assign) do assigner.assign(moderator, note: other_note, allow_self_reassign: self_reassign)