mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 21:14:41 +08:00
spec fixes
This commit is contained in:
@ -84,19 +84,17 @@ RSpec.describe "Outgoing chat webhooks" do
|
||||
expect(payload_channel["chatable_id"]).to eq(direct_message.id)
|
||||
expect(payload_channel["chatable_type"]).to eq("DirectMessage")
|
||||
expect(payload_channel["chatable_url"]).to be_nil
|
||||
expect(payload_channel["chatable"]["users"][0]["id"]).to eq(user2.id)
|
||||
expect(payload_channel["chatable"]["users"][0]["username"]).to eq(user2.username)
|
||||
expect(payload_channel["chatable"]["users"][0]["name"]).to eq(user2.name)
|
||||
expect(payload_channel["chatable"]["users"][0]["avatar_template"]).to eq(
|
||||
user2.avatar_template,
|
||||
)
|
||||
expect(payload_channel["chatable"]["users"][0]["can_chat"]).to eq(true)
|
||||
expect(payload_channel["chatable"]["users"][0]["has_chat_enabled"]).to eq(true)
|
||||
expect(payload_channel["title"]).to eq(channel.title(user1))
|
||||
expect(payload_channel["slug"]).to be_nil
|
||||
|
||||
membership =
|
||||
payload_channel["chatable"]["memberships"].detect { |m| m["user"]["id"] == user2.id }
|
||||
user = membership["user"]
|
||||
|
||||
expect(user["username"]).to eq(user2.username)
|
||||
expect(user["name"]).to eq(user2.name)
|
||||
expect(user["avatar_template"]).to eq(user2.avatar_template)
|
||||
expect(user["can_chat"]).to eq(true)
|
||||
expect(user["has_chat_enabled"]).to eq(true)
|
||||
|
||||
yield(payload_channel) if block_given?
|
||||
end
|
||||
|
||||
|
@ -85,7 +85,7 @@ RSpec.describe Chat::GuardianExtensions do
|
||||
end
|
||||
|
||||
it "returns true if the user is part of the direct message" do
|
||||
channel.add(user)
|
||||
Chat::DirectMessageUser.create!(user: user, direct_message: chatable)
|
||||
expect(guardian.can_join_chat_channel?(channel)).to eq(true)
|
||||
end
|
||||
end
|
||||
|
@ -610,7 +610,7 @@ RSpec.describe Chat::ChatController do
|
||||
post "/chat/drafts.json", params: { chat_channel_id: dm_channel.id, data: "{}" }
|
||||
expect(response.status).to eq(403)
|
||||
|
||||
dm_channel.add(user)
|
||||
Chat::DirectMessageUser.create(user: user, direct_message: dm_channel.chatable)
|
||||
|
||||
expect {
|
||||
post "/chat/drafts.json", params: { chat_channel_id: dm_channel.id, data: "{}" }
|
||||
|
@ -3,30 +3,49 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Chat::DirectMessageSerializer do
|
||||
describe "#memberships" do
|
||||
it "returns memberships" 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)
|
||||
channel =
|
||||
Fabricate(:direct_message_channel, users: [me, you, other_you], with_membership: true)
|
||||
direct_message = Fabricate.build(:direct_message, users: [me, you, other_you])
|
||||
|
||||
serializer = described_class.new(channel, scope: Guardian.new(me), root: false)
|
||||
serializer = described_class.new(direct_message, scope: Guardian.new(me), root: false)
|
||||
|
||||
expect(serializer.memberships.map(&:user)).to match_array([me, you, other_you])
|
||||
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 "is not in memberships" do
|
||||
it "returns a placeholder user" do
|
||||
me = Fabricate(:user)
|
||||
you = Fabricate(:user)
|
||||
direct_message = Fabricate(:direct_message, users: [me, you])
|
||||
|
||||
channel = Fabricate(:direct_message_channel, users: [me], with_membership: true)
|
||||
|
||||
me.destroy!
|
||||
you.destroy!
|
||||
|
||||
serializer =
|
||||
described_class.new(channel.reload, scope: Guardian.new(me), root: false).as_json
|
||||
expect(serializer[:memberships]).to be_empty
|
||||
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
|
||||
|
Reference in New Issue
Block a user