FIX: Also evaluate list controller extensions (#455)

This commit is contained in:
Natalie Tay 2023-03-23 21:35:12 +08:00 committed by GitHub
parent 858636cf72
commit 7562925e0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 4 deletions

View File

@ -3,7 +3,7 @@
module DiscourseAssign
module ListControllerExtension
def self.prepended(base)
base.class_eval { generate_message_route(:private_messages_assigned) }
base.class_eval { ListController.generate_message_route(:private_messages_assigned) }
end
end
end

View File

@ -40,6 +40,7 @@ after_initialize do
reloadable_patch do |plugin|
Group.class_eval { prepend DiscourseAssign::GroupExtension }
ListController.class_eval { prepend DiscourseAssign::ListControllerExtension }
Post.class_eval { prepend DiscourseAssign::PostExtension }
Topic.class_eval { prepend DiscourseAssign::TopicExtension }
WebHook.class_eval { prepend DiscourseAssign::WebHookExtension }

View File

@ -4,10 +4,13 @@ require "rails_helper"
require_relative "../support/assign_allowed_group"
describe ListController do
before { SiteSetting.assign_enabled = true }
before do
SiteSetting.personal_message_enabled_groups = Group::AUTO_GROUPS[:trust_level_0]
SiteSetting.assign_enabled = true
end
let(:user) { Fabricate(:active_user) }
let(:user2) { Fabricate(:user) }
fab!(:user) { Fabricate(:active_user) }
fab!(:user2) { Fabricate(:user) }
let(:admin) { Fabricate(:admin) }
let(:post) { Fabricate(:post) }
@ -329,4 +332,27 @@ describe ListController do
expect(JSON.parse(response.body)["topic_list"]["topics"]).to be_empty
end
end
describe "#private_messages_assigned" do
fab!(:group) { Fabricate(:group, users: [user]) }
fab!(:pm) { Fabricate(:topic, archetype: Archetype.private_message, category_id: nil) }
fab!(:topic) { Fabricate(:topic, user: user) }
fab!(:pm_post) { Fabricate(:post, topic: pm) }
fab!(:post) { Fabricate(:post, topic: topic) }
before do
SiteSetting.assign_allowed_on_groups = "#{group.id}"
Fabricate(:topic_allowed_user, user: user, topic: pm)
Assigner.new(pm, user).assign(user)
Assigner.new(topic, user).assign(user)
end
it "returns assigned messages for user" do
sign_in(user)
get "/topics/private-messages-assigned/#{user.username_lower}.json"
expect(JSON.parse(response.body)["topic_list"]["topics"].map { |t| t["id"] }).to eq([pm.id])
end
end
end