Skip to content
This repository was archived by the owner on Jul 14, 2025. It is now read-only.

Commit d85df69

Browse files
committed
SPEC: add spec for when the user can't assign
1 parent 06985c8 commit d85df69

File tree

2 files changed

+38
-19
lines changed

2 files changed

+38
-19
lines changed

plugin.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -888,11 +888,11 @@ module ::DiscourseAssign
888888
end
889889

890890
add_filter_custom_filter("assigned") do |scope, filter_values, guardian|
891-
return if !guardian.can_assign? || filter_values.blank?
891+
next if !guardian.can_assign? || filter_values.blank?
892892

893893
user_or_group_name = filter_values.compact.first
894894

895-
return if user_or_group_name.blank?
895+
next if user_or_group_name.blank?
896896

897897
if user_id = User.find_by_username(user_or_group_name)&.id
898898
scope.where(<<~SQL, user_id)
@@ -906,19 +906,19 @@ module ::DiscourseAssign
906906
end
907907

908908
register_search_advanced_filter(/in:assigned/) do |posts|
909-
return if !@guardian.can_assign?
909+
next if !@guardian.can_assign?
910910

911911
posts.where("topics.id IN (SELECT a.topic_id FROM assignments a WHERE a.active)")
912912
end
913913

914914
register_search_advanced_filter(/in:unassigned/) do |posts|
915-
return if !@guardian.can_assign?
915+
next if !@guardian.can_assign?
916916

917917
posts.where("topics.id NOT IN (SELECT a.topic_id FROM assignments a WHERE a.active)")
918918
end
919919

920920
register_search_advanced_filter(/assigned:(.+)$/) do |posts, match|
921-
return if !@guardian.can_assign? || match.blank?
921+
next if !@guardian.can_assign? || match.blank?
922922

923923
if user_id = User.find_by_username(match)&.id
924924
posts.where(<<~SQL, user_id)

spec/requests/list_controller_spec.rb

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -369,28 +369,47 @@
369369
fab!(:post_2) { Fabricate(:post, topic: topic_2) }
370370
fab!(:post_3) { Fabricate(:post, topic: topic_3) }
371371

372-
before do
373-
sign_in(admin)
372+
describe "when user cannot assign" do
373+
it "ignores the assign filter" do
374+
add_to_assign_allowed_group(user)
375+
376+
Assigner.new(topic_1, user).assign(user)
377+
378+
get "/filter", params: { q: "assigned:#{user.username_lower}", format: :json }
379+
380+
expect(response.status).to eq(200)
381+
expect(
382+
response.parsed_body.dig("topic_list", "topics").map { _1["id"] },
383+
).to contain_exactly(topic_1.id, topic_2.id, topic_3.id)
384+
end
374385
end
375386

376-
it "filters topics by assigned user" do
377-
add_to_assign_allowed_group(user)
387+
describe "when user can assign" do
388+
before { sign_in(admin) }
378389

379-
Assigner.new(topic_1, admin).assign(user)
390+
it "filters topics by assigned user" do
391+
add_to_assign_allowed_group(user)
380392

381-
get "/filter", params: { q: "assigned:#{user.username_lower}", format: :json }
393+
Assigner.new(topic_1, admin).assign(user)
382394

383-
expect(response.status).to eq(200)
384-
expect(response.parsed_body.dig("topic_list", "topics").map { _1["id"] }).to contain_exactly(topic_1.id)
385-
end
395+
get "/filter", params: { q: "assigned:#{user.username_lower}", format: :json }
396+
397+
expect(response.status).to eq(200)
398+
expect(
399+
response.parsed_body.dig("topic_list", "topics").map { _1["id"] },
400+
).to contain_exactly(topic_1.id)
401+
end
386402

387-
it "filters topics by assigned group" do
388-
Assigner.new(topic_2, admin).assign(group)
403+
it "filters topics by assigned group" do
404+
Assigner.new(topic_2, admin).assign(group)
389405

390-
get "/filter", params: { q: "assigned:#{group.name}", format: :json }
406+
get "/filter", params: { q: "assigned:#{group.name}", format: :json }
391407

392-
expect(response.status).to eq(200)
393-
expect(response.parsed_body.dig("topic_list", "topics").map { _1["id"] }).to contain_exactly(topic_2.id)
408+
expect(response.status).to eq(200)
409+
expect(
410+
response.parsed_body.dig("topic_list", "topics").map { _1["id"] },
411+
).to contain_exactly(topic_2.id)
412+
end
394413
end
395414
end
396415
end

0 commit comments

Comments
 (0)