mirror of
https://github.com/discourse/discourse.git
synced 2025-06-07 18:47:32 +08:00
FIX: Chat threads N1 (#22322)
Followup to 1526d1f97d4617b5de03db8b71cd02cb1802d49c This commit fixes an N1 for mentions/user status when querying chat threads. This only happened if any of the thread OMs had mentions.
This commit is contained in:
@ -132,8 +132,10 @@ module Chat
|
|||||||
original_message_user: :user_status,
|
original_message_user: :user_status,
|
||||||
original_message: [
|
original_message: [
|
||||||
:chat_webhook_event,
|
:chat_webhook_event,
|
||||||
:chat_mentions,
|
|
||||||
:chat_channel,
|
:chat_channel,
|
||||||
|
chat_mentions: {
|
||||||
|
user: :user_status,
|
||||||
|
},
|
||||||
user: :user_status,
|
user: :user_status,
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -124,6 +124,38 @@ RSpec.describe Chat::Api::ChannelThreadsController do
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "has preloaded chat mentions and users for the thread original message" do
|
||||||
|
thread_1.original_message.update!(
|
||||||
|
message: "@#{current_user.username} hello and @#{thread_2.original_message_user.username}!",
|
||||||
|
)
|
||||||
|
thread_1.original_message.rebake!
|
||||||
|
thread_1.original_message.create_mentions
|
||||||
|
|
||||||
|
get "/chat/api/channels/#{public_channel.id}/threads"
|
||||||
|
expect(response.status).to eq(200)
|
||||||
|
expect(
|
||||||
|
response.parsed_body["threads"]
|
||||||
|
.find { |thread| thread["id"] == thread_1.id }
|
||||||
|
.dig("original_message", "mentioned_users"),
|
||||||
|
).to eq(
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"avatar_template" => User.system_avatar_template(current_user.username),
|
||||||
|
"id" => current_user.id,
|
||||||
|
"name" => current_user.name,
|
||||||
|
"username" => current_user.username,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avatar_template" =>
|
||||||
|
User.system_avatar_template(thread_2.original_message_user.username),
|
||||||
|
"id" => thread_2.original_message_user.id,
|
||||||
|
"name" => thread_2.original_message_user.name,
|
||||||
|
"username" => thread_2.original_message_user.username,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
context "when the channel is not accessible to the useer" do
|
context "when the channel is not accessible to the useer" do
|
||||||
before do
|
before do
|
||||||
public_channel.update!(chatable: Fabricate(:private_category, group: Fabricate(:group)))
|
public_channel.update!(chatable: Fabricate(:private_category, group: Fabricate(:group)))
|
||||||
|
Reference in New Issue
Block a user