FIX: Also evaluate list controller extensions (#455)
This commit is contained in:
parent
858636cf72
commit
7562925e0d
|
@ -3,7 +3,7 @@
|
||||||
module DiscourseAssign
|
module DiscourseAssign
|
||||||
module ListControllerExtension
|
module ListControllerExtension
|
||||||
def self.prepended(base)
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -40,6 +40,7 @@ after_initialize do
|
||||||
|
|
||||||
reloadable_patch do |plugin|
|
reloadable_patch do |plugin|
|
||||||
Group.class_eval { prepend DiscourseAssign::GroupExtension }
|
Group.class_eval { prepend DiscourseAssign::GroupExtension }
|
||||||
|
ListController.class_eval { prepend DiscourseAssign::ListControllerExtension }
|
||||||
Post.class_eval { prepend DiscourseAssign::PostExtension }
|
Post.class_eval { prepend DiscourseAssign::PostExtension }
|
||||||
Topic.class_eval { prepend DiscourseAssign::TopicExtension }
|
Topic.class_eval { prepend DiscourseAssign::TopicExtension }
|
||||||
WebHook.class_eval { prepend DiscourseAssign::WebHookExtension }
|
WebHook.class_eval { prepend DiscourseAssign::WebHookExtension }
|
||||||
|
|
|
@ -4,10 +4,13 @@ require "rails_helper"
|
||||||
require_relative "../support/assign_allowed_group"
|
require_relative "../support/assign_allowed_group"
|
||||||
|
|
||||||
describe ListController do
|
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) }
|
fab!(:user) { Fabricate(:active_user) }
|
||||||
let(:user2) { Fabricate(:user) }
|
fab!(:user2) { Fabricate(:user) }
|
||||||
let(:admin) { Fabricate(:admin) }
|
let(:admin) { Fabricate(:admin) }
|
||||||
let(:post) { Fabricate(:post) }
|
let(:post) { Fabricate(:post) }
|
||||||
|
|
||||||
|
@ -329,4 +332,27 @@ describe ListController do
|
||||||
expect(JSON.parse(response.body)["topic_list"]["topics"]).to be_empty
|
expect(JSON.parse(response.body)["topic_list"]["topics"]).to be_empty
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
Loading…
Reference in New Issue