FEATURE: Add modifier to assigned count (#598)

* FEATURE: Add modifier to assigned count

* lint: update stree in pending_assigns_reminder_spec
This commit is contained in:
Gabriel Grubba 2024-10-30 11:04:37 -03:00 committed by GitHub
parent 525dbcdc21
commit 7fcde6c1b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 6 deletions

View File

@ -56,10 +56,15 @@ class PendingAssignsReminder
end
def assigned_count_for(user)
Assignment
.joins_with_topics
.where(assigned_to_id: user.id, assigned_to_type: "User", active: true)
.count
assignments =
Assignment.joins_with_topics.where(
assigned_to_id: user.id,
assigned_to_type: "User",
active: true,
)
assignments =
DiscoursePluginRegistry.apply_modifier(:assigned_count_for_user_query, assignments, user)
assignments.count
end
def assigned_topics(user, order:)

View File

@ -143,9 +143,9 @@ RSpec.describe PendingAssignsReminder do
expect(topic.title).to eq(I18n.t("pending_assigns_reminder.title", pending_assignments: 3))
end
context "with assigns_reminder_assigned_topics_query" do
context "with assigns_reminder_assigned_topics_query modifier" do
let(:modifier_block) { Proc.new { |query| query.where.not(id: @post1.topic_id) } }
it "doesn't remind if topic is solved" do
it "updates the query correctly" do
plugin_instance = Plugin::Instance.new
plugin_instance.register_modifier(:assigns_reminder_assigned_topics_query, &modifier_block)
topics = reminder.send(:assigned_topics, user, order: :asc)
@ -158,5 +158,22 @@ RSpec.describe PendingAssignsReminder do
)
end
end
context "with assigned_count_for_user_query modifier" do
let(:modifier_block) { Proc.new { |query, user| query.where.not(assigned_to_id: user.id) } }
it "updates the query correctly" do
expect(reminder.send(:assigned_count_for, user)).to eq(3)
plugin_instance = Plugin::Instance.new
plugin_instance.register_modifier(:assigned_count_for_user_query, &modifier_block)
expect(reminder.send(:assigned_count_for, user)).to eq(0)
ensure
DiscoursePluginRegistry.unregister_modifier(
plugin_instance,
:assigned_count_for_user_query,
&modifier_block
)
end
end
end
end