mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 03:09:00 +08:00
6e161d3e75
The most common thing that we do with fab! is: fab!(:thing) { Fabricate(:thing) } This commit adds a shorthand for this which is just simply: fab!(:thing) i.e. If you omit the block, then, by default, you'll get a `Fabricate`d object using the fabricator of the same name.
49 lines
1.3 KiB
Ruby
49 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe GroupArchivedMessage do
|
|
fab!(:user)
|
|
fab!(:user_2) { Fabricate(:user) }
|
|
|
|
before_all { Group.refresh_automatic_groups! }
|
|
|
|
fab!(:group) do
|
|
Fabricate(:group, messageable_level: Group::ALIAS_LEVELS[:everyone]).tap { |g| g.add(user_2) }
|
|
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
|