mirror of
https://github.com/glitch-soc/mastodon.git
synced 2026-03-29 03:00:33 +02:00
52 lines
1.8 KiB
Ruby
52 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe EmailSubscriptionMailer do
|
|
describe '.confirmation' do
|
|
let(:email_subscription) { Fabricate(:email_subscription) }
|
|
let(:mail) { described_class.with(subscription: email_subscription).confirmation }
|
|
|
|
it 'renders the email' do
|
|
expect { mail.deliver }
|
|
.to send_email(
|
|
to: email_subscription.email,
|
|
from: 'notifications@localhost',
|
|
subject: I18n.t('email_subscription_mailer.confirmation.subject')
|
|
)
|
|
end
|
|
end
|
|
|
|
describe '.notification' do
|
|
let(:email_subscription) { Fabricate(:email_subscription, confirmed_at: Time.now.utc) }
|
|
let(:statuses) { Fabricate.times(num_of_statuses, :status) }
|
|
let(:mail) { described_class.with(subscription: email_subscription).notification(statuses) }
|
|
|
|
context 'with a single status' do
|
|
let(:num_of_statuses) { 1 }
|
|
|
|
it 'renders the email' do
|
|
expect { mail.deliver }
|
|
.to send_email(
|
|
to: email_subscription.email,
|
|
from: 'notifications@localhost',
|
|
subject: I18n.t('email_subscription_mailer.notification.subject', count: statuses.size, name: email_subscription.account.display_name, excerpt: statuses.first.text.truncate(17))
|
|
)
|
|
end
|
|
end
|
|
|
|
context 'with multiple statuses' do
|
|
let(:num_of_statuses) { 2 }
|
|
|
|
it 'renders the email' do
|
|
expect { mail.deliver }
|
|
.to send_email(
|
|
to: email_subscription.email,
|
|
from: 'notifications@localhost',
|
|
subject: I18n.t('email_subscription_mailer.notification.subject', count: statuses.size, name: email_subscription.account.display_name, excerpt: ActionController::Base.helpers.truncate(statuses.first.text, length: 17))
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|