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:
Loïc Guitaut
2022-11-02 15:53:36 +01:00
committed by Loïc Guitaut
parent 7e992cb299
commit abcaa1a961
57 changed files with 378 additions and 455 deletions

View File

@ -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,

View File

@ -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) }

View File

@ -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)

View File

@ -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

View File

@ -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)],