mirror of
https://github.com/discourse/discourse.git
synced 2025-01-18 16:52:45 +08:00
DEV: add test cases for email notifications about channel-wide mentions (#20691)
A follow-up to e6c04e2d
.
This commit is contained in:
parent
c213cc7211
commit
7dd317b875
|
@ -161,6 +161,72 @@ describe UserNotifications do
|
|||
expect(email.to).to be_blank
|
||||
end
|
||||
|
||||
context "with channel-wide mentions" do
|
||||
before { Jobs.run_immediately! }
|
||||
|
||||
def create_chat_message_with_mentions_and_notifications(content)
|
||||
# Sometimes it's not enough to just fabricate a message
|
||||
# and we have to create it like here. In this case all the necessary
|
||||
# db records for mentions and notifications will be created under the hood.
|
||||
Chat::ChatMessageCreator.create(chat_channel: channel, user: sender, content: content)
|
||||
end
|
||||
|
||||
it "returns email for @all mention by default" do
|
||||
create_chat_message_with_mentions_and_notifications("Mentioning @all")
|
||||
email = described_class.chat_summary(user, {})
|
||||
expect(email.to).to contain_exactly(user.email)
|
||||
end
|
||||
|
||||
it "returns email for @here mention by default" do
|
||||
user.update(last_seen_at: 1.second.ago)
|
||||
|
||||
create_chat_message_with_mentions_and_notifications("Mentioning @here")
|
||||
email = described_class.chat_summary(user, {})
|
||||
|
||||
expect(email.to).to contain_exactly(user.email)
|
||||
end
|
||||
|
||||
context "when channel-wide mentions are disabled in a channel" do
|
||||
before { channel.update!(allow_channel_wide_mentions: false) }
|
||||
|
||||
it "doesn't return email for @all mention" do
|
||||
create_chat_message_with_mentions_and_notifications("Mentioning @all")
|
||||
email = described_class.chat_summary(user, {})
|
||||
|
||||
expect(email.to).to be_blank
|
||||
end
|
||||
|
||||
it "doesn't return email for @here mention" do
|
||||
user.update(last_seen_at: 1.second.ago)
|
||||
|
||||
create_chat_message_with_mentions_and_notifications("Mentioning @here")
|
||||
email = described_class.chat_summary(user, {})
|
||||
|
||||
expect(email.to).to be_blank
|
||||
end
|
||||
end
|
||||
|
||||
context "when user has disabled channel-wide mentions" do
|
||||
before { user.user_option.update!(ignore_channel_wide_mention: true) }
|
||||
|
||||
it "doesn't return email for @all mention" do
|
||||
create_chat_message_with_mentions_and_notifications("Mentioning @all")
|
||||
email = described_class.chat_summary(user, {})
|
||||
|
||||
expect(email.to).to be_blank
|
||||
end
|
||||
|
||||
it "doesn't return email for @here mention" do
|
||||
user.update(last_seen_at: 1.second.ago)
|
||||
|
||||
create_chat_message_with_mentions_and_notifications("Mentioning @here")
|
||||
email = described_class.chat_summary(user, {})
|
||||
|
||||
expect(email.to).to be_blank
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "email subject" do
|
||||
context "with regular mentions" do
|
||||
before do
|
||||
|
|
Loading…
Reference in New Issue
Block a user