diff --git a/plugins/chat/app/services/chat/create_direct_message_channel.rb b/plugins/chat/app/services/chat/create_direct_message_channel.rb index ed635618155..7cd9bd2f1c5 100644 --- a/plugins/chat/app/services/chat/create_direct_message_channel.rb +++ b/plugins/chat/app/services/chat/create_direct_message_channel.rb @@ -33,7 +33,6 @@ module Chat class_name: Chat::DirectMessageChannel::CanCommunicateAllPartiesPolicy model :direct_message, :fetch_or_create_direct_message model :channel, :fetch_or_create_channel - step :validate_user_count step :set_optional_name step :update_memberships step :recompute_users_count @@ -73,12 +72,6 @@ module Chat UserCommScreener.new(acting_user: guardian.user, target_user_ids: target_users.map(&:id)) end - def validate_user_count(target_users:) - if target_users.length > SiteSetting.chat_max_direct_message_users - fail!("should have less than #{SiteSetting.chat_max_direct_message_users} elements") - end - end - def actor_allows_dms(user_comm_screener:) !user_comm_screener.actor_disallowing_all_pms? end diff --git a/plugins/chat/spec/services/chat/create_direct_message_channel_spec.rb b/plugins/chat/spec/services/chat/create_direct_message_channel_spec.rb index f41a8bb25d1..844247d40d2 100644 --- a/plugins/chat/spec/services/chat/create_direct_message_channel_spec.rb +++ b/plugins/chat/spec/services/chat/create_direct_message_channel_spec.rb @@ -104,6 +104,13 @@ RSpec.describe Chat::CreateDirectMessageChannel do expect { result }.to change { Chat::UserChatChannelMembership.count }.by(4) expect(result).to be_a_success end + + it "succeeds when target_usernames is equal to max direct users" do + SiteSetting.chat_max_direct_message_users = 2 + + expect { result }.to change { Chat::UserChatChannelMembership.count }.by(3) # current user + user_1 + user_2 + expect(result).to be_a_success + end end context "when there is an existing direct message channel for the target users" do @@ -165,9 +172,9 @@ RSpec.describe Chat::CreateDirectMessageChannel do end context "when target_usernames exceeds chat_max_direct_message_users" do - before { SiteSetting.chat_max_direct_message_users = 2 } + before { SiteSetting.chat_max_direct_message_users = 1 } - 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 the current user cannot make direct messages" do