docbrown/spec/mailers/digest_mailer_spec.rb

34 lines
1.2 KiB
Ruby

require "rails_helper"
RSpec.describe DigestMailer, type: :mailer do
let(:user) { build_stubbed(:user) }
let(:article) { build_stubbed(:article) }
describe "#digest_email" do
before do
allow(article).to receive(:title).and_return("test title")
end
it "works correctly" do
email = described_class.with(user: user, articles: [article]).digest_email
expect(email.subject).not_to be_nil
expect(email.to).to eq([user.email])
expect(email.from).to eq([SiteConfig.email_addresses[:default]])
expected_from = "#{ApplicationConfig['COMMUNITY_NAME']} Digest <#{SiteConfig.email_addresses[:default]}>"
expect(email["from"].value).to eq(expected_from)
end
it "includes the tracking pixel" do
email = described_class.with(user: user, articles: [article]).digest_email
expect(email.body).to include("open.gif")
end
it "includes UTM params" do
email = described_class.with(user: user, articles: [article]).digest_email
expect(email.body).to include(CGI.escape("utm_medium=email"))
expect(email.body).to include(CGI.escape("utm_source=digest_mailer"))
expect(email.body).to include(CGI.escape("utm_campaign=digest_email"))
end
end
end