discourse/spec/models/user_archived_message_spec.rb
Daniel Waterworth 6e161d3e75
DEV: Allow fab! without block (#24314)
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.
2023-11-09 16:47:59 -06:00

41 lines
1.1 KiB
Ruby

# frozen_string_literal: true
RSpec.describe UserArchivedMessage do
fab!(:user)
fab!(:user_2) { Fabricate(:user) }
fab!(:private_message) do
create_post(
user: user,
skip_validations: true,
target_usernames: [user_2.username, user.username].join(","),
archetype: Archetype.private_message,
).topic
end
describe ".move_to_inbox!" do
it "moves topic back to inbox correctly" do
UserArchivedMessage.archive!(user.id, private_message)
expect do UserArchivedMessage.move_to_inbox!(user.id, private_message) end.to change {
private_message.message_archived?(user)
}.from(true).to(false)
end
it "does not move archived muted messages back to inbox" do
UserArchivedMessage.archive!(user.id, private_message)
expect(private_message.message_archived?(user)).to eq(true)
TopicUser.change(
user.id,
private_message.id,
notification_level: TopicUser.notification_levels[:muted],
)
UserArchivedMessage.move_to_inbox!(user.id, private_message)
expect(private_message.message_archived?(user)).to eq(true)
end
end
end