mirror of
https://github.com/discourse/discourse.git
synced 2025-05-28 13:51:18 +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
@ -175,7 +175,7 @@ describe ChatMessageSerializer do
|
||||
|
||||
context "when flagging DMs" do
|
||||
fab!(:dm_channel) do
|
||||
Fabricate(:direct_message_chat_channel, users: [guardian_user, message_poster])
|
||||
Fabricate(:direct_message_channel, users: [guardian_user, message_poster])
|
||||
end
|
||||
fab!(:dm_message) { Fabricate(:chat_message, user: message_poster, chat_channel: dm_channel) }
|
||||
|
||||
|
@ -1,71 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rails_helper"
|
||||
|
||||
describe DirectMessageChannelSerializer do
|
||||
describe "#user" do
|
||||
it "returns you when there are two of us" do
|
||||
me = Fabricate.build(:user)
|
||||
you = Fabricate.build(:user)
|
||||
direct_message_channel = Fabricate.build(:direct_message_channel, users: [me, you])
|
||||
|
||||
serializer =
|
||||
DirectMessageChannelSerializer.new(
|
||||
direct_message_channel,
|
||||
scope: Guardian.new(me),
|
||||
root: false,
|
||||
)
|
||||
|
||||
expect(serializer.users).to eq([you])
|
||||
end
|
||||
|
||||
it "returns you both if there are three of us" do
|
||||
me = Fabricate.build(:user)
|
||||
you = Fabricate.build(:user)
|
||||
other_you = Fabricate.build(:user)
|
||||
direct_message_channel = Fabricate.build(:direct_message_channel, users: [me, you, other_you])
|
||||
|
||||
serializer =
|
||||
DirectMessageChannelSerializer.new(
|
||||
direct_message_channel,
|
||||
scope: Guardian.new(me),
|
||||
root: false,
|
||||
)
|
||||
|
||||
expect(serializer.users).to match_array([you, other_you])
|
||||
end
|
||||
|
||||
it "returns me if there is only me" do
|
||||
me = Fabricate.build(:user)
|
||||
direct_message_channel = Fabricate.build(:direct_message_channel, users: [me])
|
||||
|
||||
serializer =
|
||||
DirectMessageChannelSerializer.new(
|
||||
direct_message_channel,
|
||||
scope: Guardian.new(me),
|
||||
root: false,
|
||||
)
|
||||
|
||||
expect(serializer.users).to eq([me])
|
||||
end
|
||||
|
||||
context "when a user is destroyed" do
|
||||
it "returns a placeholder user" do
|
||||
me = Fabricate(:user)
|
||||
you = Fabricate(:user)
|
||||
direct_message_channel = Fabricate(:direct_message_channel, users: [me, you])
|
||||
|
||||
you.destroy!
|
||||
|
||||
serializer =
|
||||
DirectMessageChannelSerializer.new(
|
||||
direct_message_channel.reload,
|
||||
scope: Guardian.new(me),
|
||||
root: false,
|
||||
).as_json
|
||||
|
||||
expect(serializer[:users][0][:username]).to eq(I18n.t("chat.deleted_chat_username"))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,52 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rails_helper"
|
||||
|
||||
describe DirectMessageSerializer do
|
||||
describe "#user" do
|
||||
it "returns you when there are two of us" do
|
||||
me = Fabricate.build(:user)
|
||||
you = Fabricate.build(:user)
|
||||
direct_message = Fabricate.build(:direct_message, users: [me, you])
|
||||
|
||||
serializer = described_class.new(direct_message, scope: Guardian.new(me), root: false)
|
||||
|
||||
expect(serializer.users).to eq([you])
|
||||
end
|
||||
|
||||
it "returns you both if there are three of us" do
|
||||
me = Fabricate.build(:user)
|
||||
you = Fabricate.build(:user)
|
||||
other_you = Fabricate.build(:user)
|
||||
direct_message = Fabricate.build(:direct_message, users: [me, you, other_you])
|
||||
|
||||
serializer = described_class.new(direct_message, scope: Guardian.new(me), root: false)
|
||||
|
||||
expect(serializer.users).to match_array([you, other_you])
|
||||
end
|
||||
|
||||
it "returns me if there is only me" do
|
||||
me = Fabricate.build(:user)
|
||||
direct_message = Fabricate.build(:direct_message, users: [me])
|
||||
|
||||
serializer = described_class.new(direct_message, scope: Guardian.new(me), root: false)
|
||||
|
||||
expect(serializer.users).to eq([me])
|
||||
end
|
||||
|
||||
context "when a user is destroyed" do
|
||||
it "returns a placeholder user" do
|
||||
me = Fabricate(:user)
|
||||
you = Fabricate(:user)
|
||||
direct_message = Fabricate(:direct_message, users: [me, you])
|
||||
|
||||
you.destroy!
|
||||
|
||||
serializer =
|
||||
described_class.new(direct_message.reload, scope: Guardian.new(me), root: false).as_json
|
||||
|
||||
expect(serializer[:users][0][:username]).to eq(I18n.t("chat.deleted_chat_username"))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -5,14 +5,10 @@ RSpec.describe StructuredChannelSerializer do
|
||||
fab!(:guardian) { Guardian.new(user1) }
|
||||
fab!(:user2) { Fabricate(:user) }
|
||||
fab!(:user3) { Fabricate(:user) }
|
||||
fab!(:channel1) { Fabricate(:chat_channel) }
|
||||
fab!(:channel2) { Fabricate(:chat_channel) }
|
||||
fab!(:channel3) do
|
||||
Fabricate(:chat_channel, chatable: Fabricate(:direct_message_channel, users: [user1, user2]))
|
||||
end
|
||||
fab!(:channel4) do
|
||||
Fabricate(:chat_channel, chatable: Fabricate(:direct_message_channel, users: [user1, user3]))
|
||||
end
|
||||
fab!(:channel1) { Fabricate(:category_channel) }
|
||||
fab!(:channel2) { Fabricate(:category_channel) }
|
||||
fab!(:channel3) { Fabricate(:direct_message_channel, users: [user1, user2]) }
|
||||
fab!(:channel4) { Fabricate(:direct_message_channel, users: [user1, user3]) }
|
||||
fab!(:membership1) do
|
||||
Fabricate(:user_chat_channel_membership, user: user1, chat_channel: channel1)
|
||||
end
|
||||
|
Reference in New Issue
Block a user