discourse/spec/models/group_archived_message_spec.rb
2022-07-28 10:27:38 +08:00

53 lines
1.3 KiB
Ruby

# frozen_string_literal: true
RSpec.describe GroupArchivedMessage do
fab!(:user) { Fabricate(:user) }
fab!(:user_2) { Fabricate(:user) }
fab!(:group) do
Fabricate(:group, messageable_level: Group::ALIAS_LEVELS[:everyone]).tap do |g|
g.add(user_2)
end
end
fab!(:group_message) do
create_post(
user: user,
target_group_names: [group.name],
archetype: Archetype.private_message
).topic
end
describe '.move_to_inbox!' do
it 'should unarchive the topic correctly' do
described_class.archive!(group.id, group_message)
messages = MessageBus.track_publish(PrivateMessageTopicTrackingState.group_channel(group.id)) do
described_class.move_to_inbox!(group.id, group_message)
end
expect(messages.present?).to eq(true)
expect(GroupArchivedMessage.exists?(
topic: group_message,
group: group
)).to eq(false)
end
end
describe '.archive!' do
it 'should archive the topic correctly' do
messages = MessageBus.track_publish(PrivateMessageTopicTrackingState.group_channel(group.id)) do
described_class.archive!(group.id, group_message)
end
expect(GroupArchivedMessage.exists?(
topic: group_message,
group: group
)).to eq(true)
expect(messages.present?).to eq(true)
end
end
end