mirror of
https://github.com/discourse/discourse.git
synced 2025-06-03 19:39:30 +08:00
FIX: chat direct message group user limit is off by 1 (#27014)
This change allows the correct number of members to be added when creating a group direct message, based on the site setting chat_max_direct_message_users. Previously we counted the current user within the max user limit and therefore the count was off by 1.
This commit is contained in:
@ -29,12 +29,12 @@ RSpec.describe Chat::AddUsersToChannel do
|
||||
before { channel.add(current_user) }
|
||||
|
||||
it "fetches users to add" do
|
||||
expect(result.users.map(&:username)).to contain_exactly(*users.map(&:username))
|
||||
expect(result.target_users.map(&:username)).to contain_exactly(*users.map(&:username))
|
||||
end
|
||||
|
||||
it "includes users from groups" do
|
||||
params.merge!(groups: [group.name])
|
||||
expect(result.users.map(&:username)).to include(
|
||||
expect(result.target_users.map(&:username)).to include(
|
||||
group_user_1.username,
|
||||
group_user_2.username,
|
||||
)
|
||||
@ -59,7 +59,9 @@ RSpec.describe Chat::AddUsersToChannel do
|
||||
it "doesn't include existing direct message users" do
|
||||
Chat::DirectMessageUser.create!(user: users.first, direct_message: direct_message)
|
||||
|
||||
expect(result.users.map(&:username)).to contain_exactly(*users[1..-1].map(&:username))
|
||||
expect(result.target_users.map(&:username)).to contain_exactly(
|
||||
*users[1..-1].map(&:username),
|
||||
)
|
||||
end
|
||||
|
||||
it "creates memberships" do
|
||||
@ -77,7 +79,7 @@ RSpec.describe Chat::AddUsersToChannel do
|
||||
end
|
||||
|
||||
it "creates a chat message to show added users" do
|
||||
added_users = result.users
|
||||
added_users = result.target_users
|
||||
|
||||
channel.chat_messages.last.tap do |message|
|
||||
expect(message.message).to eq(
|
||||
@ -93,10 +95,10 @@ RSpec.describe Chat::AddUsersToChannel do
|
||||
end
|
||||
end
|
||||
|
||||
context "when usernames exceeds chat_max_direct_message_users" do
|
||||
context "when users exceed max direct message user limit" do
|
||||
before { SiteSetting.chat_max_direct_message_users = 4 }
|
||||
|
||||
it { is_expected.to fail_a_step(:validate_user_count) }
|
||||
it { is_expected.to fail_a_policy(:satisfies_dms_max_users_limit) }
|
||||
end
|
||||
|
||||
context "when channel is not found" do
|
||||
|
@ -111,15 +111,16 @@ RSpec.describe "Flag message", type: :system do
|
||||
user_1 = Fabricate(:user)
|
||||
user_2 = Fabricate(:user)
|
||||
user_3 = Fabricate(:user)
|
||||
group = Fabricate(:public_group, users: [user_1, user_2])
|
||||
user_4 = Fabricate(:user)
|
||||
group = Fabricate(:public_group, users: [user_1, user_2, user_3])
|
||||
|
||||
visit("/")
|
||||
chat_page.prefers_full_page
|
||||
chat_page.open_new_message
|
||||
chat_page.find("#new-group-chat").click
|
||||
chat_page.find(".chat-message-creator__new-group-header__input").fill_in(with: "hamsters")
|
||||
chat_page.find(".chat-message-creator__members-input").fill_in(with: user_3.username)
|
||||
chat_page.message_creator.click_row(user_3)
|
||||
chat_page.find(".chat-message-creator__members-input").fill_in(with: user_4.username)
|
||||
chat_page.message_creator.click_row(user_4)
|
||||
chat_page.find(".chat-message-creator__members-input").fill_in(with: group.name)
|
||||
chat_page.message_creator.click_row(group)
|
||||
|
||||
|
Reference in New Issue
Block a user