mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 08:34:39 +08:00
e52ccaa51f
If a group you're a member of is invited to a PM, you can no longer remove yourself from it. This means you won't be able to remove the message from your inbox, and even if you archive it, it'll come back once someone replies.
30 lines
1.0 KiB
Ruby
30 lines
1.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
describe TopicViewDetailsSerializer do
|
|
describe '#allowed_users' do
|
|
it "add the current user to the allowed user's list even if they are an allowed group member" do
|
|
participant = Fabricate(:user)
|
|
another_participant = Fabricate(:user)
|
|
|
|
participant_group = Fabricate(:group)
|
|
participant_group.add(participant)
|
|
participant_group.add(another_participant)
|
|
|
|
pm = Fabricate(:private_message_topic,
|
|
topic_allowed_users: [
|
|
Fabricate.build(:topic_allowed_user, user: participant),
|
|
Fabricate.build(:topic_allowed_user, user: another_participant)
|
|
],
|
|
topic_allowed_groups: [Fabricate.build(:topic_allowed_group, group: participant_group)]
|
|
)
|
|
|
|
serializer = described_class.new(TopicView.new(pm, participant), scope: Guardian.new(participant))
|
|
allowed_users = serializer.as_json.dig(:topic_view_details, :allowed_users).map { |u| u[:id] }
|
|
|
|
expect(allowed_users).to contain_exactly(participant.id)
|
|
end
|
|
end
|
|
end
|