Add New Comment on your post notifications

This notification is sent only to the post owner, unless this person turned off the notifications.
A simple first step into the notifications by mail world :)

The mail contains a link to user profile
The link to the user profile is required to give an easy access to
notifications disabling.

Also having a preview for the notify_post_owner method

We can `Comment.first` because it is part of the db:seeds method. So
there should, in development, always be one.
This commit is contained in:
Kevin Vinhas
2021-01-29 00:49:27 +01:00
committed by Riccardo Graziosi
parent 9dfb13eff6
commit 007d08a051
10 changed files with 110 additions and 12 deletions

View File

@@ -0,0 +1,22 @@
require "rails_helper"
RSpec.describe UserMailer, type: :mailer do
describe "notify_comment" do
let(:user) { FactoryBot.create(:user, email: "notified@example.com", notifications_enabled: true) }
let(:post) { FactoryBot.create(:post, user: user)}
let(:comment) { FactoryBot.create(:comment, post: post) }
let(:mail) { UserMailer.notify_post_owner(comment: comment) }
it "renders the headers" do
expect(mail.subject).to eq("[#{ENV.fetch('APP_NAME')}] - New comment on #{post.title}")
expect(mail.to).to eq(["notified@example.com"])
expect(mail.from).to eq(["notifications@example.com"])
end
it "renders the body" do
expect(mail.body.encoded).to include("Hello, #{user.full_name}")
expect(mail.body.encoded).to include("There is a new comment by")
expect(mail.body.encoded).to include('Annoyed ? You can <a href="http://localhost:3000/users/edit">turn off notifications here</a>')
end
end
end