mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
DEV: Rename direct message related models
This is a followup of the previous refactor where we created two new models to handle all the dedicated logic that was present in the `ChatChannel` model. For the sake of consistency, `DMChannel` has been renamed to `DirectMessageChannel` and the previous `DirectMessageChannel` model is now named `DirectMessage`. This should help reasoning about direct messages.
This commit is contained in:

committed by
Loïc Guitaut

parent
7e992cb299
commit
abcaa1a961
@ -79,8 +79,7 @@ RSpec.describe Chat::Api::ChatChannelNotificationsSettingsController do
|
||||
|
||||
context "when direct message channel has invalid params" do
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
fab!(:chatable) { Fabricate(:direct_message_channel, users: [user, Fabricate(:user)]) }
|
||||
fab!(:chat_channel) { Fabricate(:dm_channel, chatable: chatable) }
|
||||
fab!(:chat_channel) { Fabricate(:direct_message_channel, users: [user, Fabricate(:user)]) }
|
||||
fab!(:membership) do
|
||||
Fabricate(:user_chat_channel_membership, user: user, chat_channel: chat_channel)
|
||||
end
|
||||
@ -102,8 +101,7 @@ RSpec.describe Chat::Api::ChatChannelNotificationsSettingsController do
|
||||
|
||||
context "when direct message channel has valid params" do
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
fab!(:chatable) { Fabricate(:direct_message_channel, users: [user, Fabricate(:user)]) }
|
||||
fab!(:chat_channel) { Fabricate(:dm_channel, chatable: chatable) }
|
||||
fab!(:chat_channel) { Fabricate(:direct_message_channel, users: [user, Fabricate(:user)]) }
|
||||
fab!(:membership) do
|
||||
Fabricate(
|
||||
:user_chat_channel_membership,
|
||||
|
@ -234,8 +234,7 @@ describe Chat::Api::ChatChannelsController do
|
||||
|
||||
context "when channel is a direct message channel" do
|
||||
fab!(:user) { Fabricate(:admin) }
|
||||
fab!(:chatable) { Fabricate(:direct_message_channel) }
|
||||
fab!(:chat_channel) { Fabricate(:dm_channel, chatable: chatable) }
|
||||
fab!(:chat_channel) { Fabricate(:direct_message_channel) }
|
||||
|
||||
before { sign_in(user) }
|
||||
|
||||
|
@ -8,9 +8,7 @@ RSpec.describe Chat::ChatChannelsController do
|
||||
fab!(:admin) { Fabricate(:admin, username: "andyjones", name: "Andy Jones") }
|
||||
fab!(:category) { Fabricate(:category) }
|
||||
fab!(:chat_channel) { Fabricate(:category_channel, chatable: category) }
|
||||
fab!(:dm_chat_channel) do
|
||||
Fabricate(:dm_channel, chatable: Fabricate(:direct_message_channel, users: [user, admin]))
|
||||
end
|
||||
fab!(:dm_chat_channel) { Fabricate(:direct_message_channel, users: [user, admin]) }
|
||||
|
||||
before do
|
||||
SiteSetting.chat_enabled = true
|
||||
@ -514,11 +512,7 @@ RSpec.describe Chat::ChatChannelsController do
|
||||
group = Fabricate(:group, name: "chatpeeps")
|
||||
SiteSetting.chat_allowed_groups = group.id
|
||||
GroupUser.create(user: user, group: group)
|
||||
dm_chat_channel_2 =
|
||||
Fabricate(
|
||||
:dm_channel,
|
||||
chatable: Fabricate(:direct_message_channel, users: [user, other_user]),
|
||||
)
|
||||
dm_chat_channel_2 = Fabricate(:direct_message_channel, users: [user, other_user])
|
||||
|
||||
get "/chat/chat_channels/search.json", params: { filter: "janemay" }
|
||||
expect(response.status).to eq(200)
|
||||
|
@ -8,12 +8,7 @@ RSpec.describe Chat::ChatController do
|
||||
fab!(:admin) { Fabricate(:admin) }
|
||||
fab!(:category) { Fabricate(:category) }
|
||||
fab!(:chat_channel) { Fabricate(:category_channel, chatable: category) }
|
||||
fab!(:dm_chat_channel) do
|
||||
Fabricate(
|
||||
:dm_channel,
|
||||
chatable: Fabricate(:direct_message_channel, users: [user, other_user, admin]),
|
||||
)
|
||||
end
|
||||
fab!(:dm_chat_channel) { Fabricate(:direct_message_channel, users: [user, other_user, admin]) }
|
||||
fab!(:tag) { Fabricate(:tag) }
|
||||
|
||||
MESSAGE_COUNT = 70
|
||||
@ -355,8 +350,8 @@ RSpec.describe Chat::ChatController do
|
||||
describe "for direct message" do
|
||||
fab!(:user1) { Fabricate(:user) }
|
||||
fab!(:user2) { Fabricate(:user) }
|
||||
fab!(:chatable) { Fabricate(:direct_message_channel, users: [user1, user2]) }
|
||||
fab!(:direct_message_channel) { Fabricate(:dm_channel, chatable: chatable) }
|
||||
fab!(:chatable) { Fabricate(:direct_message, users: [user1, user2]) }
|
||||
fab!(:direct_message_channel) { Fabricate(:direct_message_channel, chatable: chatable) }
|
||||
|
||||
def create_memberships
|
||||
UserChatChannelMembership.create!(
|
||||
@ -392,7 +387,7 @@ RSpec.describe Chat::ChatController do
|
||||
it "errors when the user is not part of the direct message channel" do
|
||||
create_memberships
|
||||
|
||||
DirectMessageUser.find_by(user: user1, direct_message_channel: chatable).destroy!
|
||||
DirectMessageUser.find_by(user: user1, direct_message: chatable).destroy!
|
||||
sign_in(user1)
|
||||
post "/chat/#{direct_message_channel.id}.json", params: { message: message }
|
||||
expect(response.status).to eq(403)
|
||||
@ -1085,10 +1080,7 @@ RSpec.describe Chat::ChatController do
|
||||
it "sets `dismissed_dm_retention_reminder` to true" do
|
||||
sign_in(user)
|
||||
expect {
|
||||
post "/chat/dismiss-retention-reminder.json",
|
||||
params: {
|
||||
chatable_type: "DirectMessageChannel",
|
||||
}
|
||||
post "/chat/dismiss-retention-reminder.json", params: { chatable_type: "DirectMessage" }
|
||||
}.to change { user.user_option.reload.dismissed_dm_retention_reminder }.to (true)
|
||||
end
|
||||
|
||||
@ -1101,10 +1093,7 @@ RSpec.describe Chat::ChatController do
|
||||
post "/chat/dismiss-retention-reminder.json", params: { chatable_type: "Category" }
|
||||
expect(response.status).to eq(200)
|
||||
|
||||
post "/chat/dismiss-retention-reminder.json",
|
||||
params: {
|
||||
chatable_type: "DirectMessageChannel",
|
||||
}
|
||||
post "/chat/dismiss-retention-reminder.json", params: { chatable_type: "DirectMessage" }
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
end
|
||||
@ -1266,7 +1255,7 @@ RSpec.describe Chat::ChatController do
|
||||
|
||||
describe "#set_draft" do
|
||||
fab!(:chat_channel) { Fabricate(:category_channel) }
|
||||
let(:dm_channel) { Fabricate(:dm_channel) }
|
||||
let(:dm_channel) { Fabricate(:direct_message_channel) }
|
||||
|
||||
before { sign_in(user) }
|
||||
|
||||
@ -1298,7 +1287,7 @@ RSpec.describe Chat::ChatController do
|
||||
post "/chat/drafts.json", params: { chat_channel_id: dm_channel.id, data: "{}" }
|
||||
expect(response.status).to eq(403)
|
||||
|
||||
DirectMessageUser.create(user: user, direct_message_channel: dm_channel.chatable)
|
||||
DirectMessageUser.create(user: user, direct_message: dm_channel.chatable)
|
||||
expect {
|
||||
post "/chat/drafts.json", params: { chat_channel_id: dm_channel.id, data: "{}" }
|
||||
}.to change { ChatDraft.count }.by(1)
|
||||
@ -1319,7 +1308,7 @@ RSpec.describe Chat::ChatController do
|
||||
|
||||
describe "#lookup_message" do
|
||||
let!(:message) { Fabricate(:chat_message, chat_channel: channel) }
|
||||
let(:channel) { Fabricate(:dm_channel) }
|
||||
let(:channel) { Fabricate(:direct_message_channel) }
|
||||
let(:chatable) { channel.chatable }
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
|
||||
@ -1362,13 +1351,13 @@ RSpec.describe Chat::ChatController do
|
||||
end
|
||||
|
||||
context "when the chat channel is for a direct message channel" do
|
||||
let(:channel) { Fabricate(:dm_channel) }
|
||||
let(:channel) { Fabricate(:direct_message_channel) }
|
||||
|
||||
it "ensures the user can access that direct message channel" do
|
||||
get "/chat/lookup/#{message.id}.json", { params: { chat_channel_id: channel.id } }
|
||||
expect(response.status).to eq(403)
|
||||
|
||||
DirectMessageUser.create!(user: user, direct_message_channel: chatable)
|
||||
DirectMessageUser.create!(user: user, direct_message: chatable)
|
||||
get "/chat/lookup/#{message.id}.json", { params: { chat_channel_id: channel.id } }
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.parsed_body["chat_messages"][0]["id"]).to eq(message.id)
|
||||
@ -1396,10 +1385,7 @@ RSpec.describe Chat::ChatController do
|
||||
fab!(:destination_channel) { Fabricate(:category_channel) }
|
||||
let(:message_ids) { [message_to_move1.id, message_to_move2.id] }
|
||||
let(:invalid_destination_channel) do
|
||||
Fabricate(
|
||||
:dm_channel,
|
||||
chatable: Fabricate(:direct_message_channel, users: [admin, Fabricate(:user)]),
|
||||
)
|
||||
Fabricate(:direct_message_channel, users: [admin, Fabricate(:user)])
|
||||
end
|
||||
|
||||
context "when the user is not admin" do
|
||||
|
@ -15,11 +15,11 @@ RSpec.describe Chat::DirectMessagesController do
|
||||
end
|
||||
|
||||
def create_dm_channel(user_ids)
|
||||
direct_messages_channel = DirectMessageChannel.create!
|
||||
direct_messages_channel = DirectMessage.create!
|
||||
user_ids.each do |user_id|
|
||||
direct_messages_channel.direct_message_users.create!(user_id: user_id)
|
||||
end
|
||||
DMChannel.create!(chatable: direct_messages_channel)
|
||||
DirectMessageChannel.create!(chatable: direct_messages_channel)
|
||||
end
|
||||
|
||||
describe "#index" do
|
||||
@ -41,10 +41,10 @@ RSpec.describe Chat::DirectMessagesController do
|
||||
|
||||
context "when channel exists" do
|
||||
let!(:channel) do
|
||||
direct_messages_channel = DirectMessageChannel.create!
|
||||
direct_messages_channel = DirectMessage.create!
|
||||
direct_messages_channel.direct_message_users.create!(user_id: user.id)
|
||||
direct_messages_channel.direct_message_users.create!(user_id: user1.id)
|
||||
DMChannel.create!(chatable: direct_messages_channel)
|
||||
DirectMessageChannel.create!(chatable: direct_messages_channel)
|
||||
end
|
||||
|
||||
it "returns the channel" do
|
||||
@ -76,8 +76,8 @@ RSpec.describe Chat::DirectMessagesController do
|
||||
it "creates a new dm channel with username(s) provided" do
|
||||
expect {
|
||||
post "/chat/direct_messages/create.json", params: { usernames: [usernames] }
|
||||
}.to change { DirectMessageChannel.count }.by(1)
|
||||
expect(DirectMessageChannel.last.direct_message_users.map(&:user_id)).to match_array(
|
||||
}.to change { DirectMessage.count }.by(1)
|
||||
expect(DirectMessage.last.direct_message_users.map(&:user_id)).to match_array(
|
||||
direct_message_user_ids,
|
||||
)
|
||||
end
|
||||
@ -86,7 +86,7 @@ RSpec.describe Chat::DirectMessagesController do
|
||||
create_dm_channel(direct_message_user_ids)
|
||||
expect {
|
||||
post "/chat/direct_messages/create.json", params: { usernames: [usernames] }
|
||||
}.not_to change { DirectMessageChannel.count }
|
||||
}.not_to change { DirectMessage.count }
|
||||
end
|
||||
end
|
||||
|
||||
@ -127,7 +127,7 @@ RSpec.describe Chat::DirectMessagesController do
|
||||
it "responds with a friendly error" do
|
||||
expect {
|
||||
post "/chat/direct_messages/create.json", params: { usernames: [usernames] }
|
||||
}.not_to change { DirectMessageChannel.count }
|
||||
}.not_to change { DirectMessage.count }
|
||||
expect(response.status).to eq(422)
|
||||
expect(response.parsed_body["errors"]).to eq(
|
||||
[I18n.t("chat.errors.not_accepting_dms", username: user1.username)],
|
||||
|
Reference in New Issue
Block a user