30 lines
1.0 KiB
Ruby
30 lines
1.0 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe ReminderMailer, type: :mailer do
|
|
describe 'Email delivery' do
|
|
let(:reminder) { build :reminder }
|
|
let(:mail) { ReminderMailer.schedule_email reminder, 'to@example.org' }
|
|
|
|
it 'renders the headers' do
|
|
expect(mail.subject).to eq 'Reminder'
|
|
expect(mail.to).to eq ['to@example.org']
|
|
expect(mail.from).to eq ['from@example.com']
|
|
end
|
|
|
|
it 'renders the body' do
|
|
expect(mail.body.encoded).to have_content reminder.title
|
|
expect(mail.body.encoded).to have_content reminder.body
|
|
end
|
|
end
|
|
|
|
describe 'Scheduled email' do
|
|
before { clear_enqueued_jobs }
|
|
let(:reminder) { create :reminder }
|
|
|
|
it 'queues the reminder' do
|
|
expect { ReminderMailer.schedule_email(reminder, 'to@example.org').deliver_later(wait_until: reminder.date) }.to have_enqueued_job.on_queue('mailers')
|
|
expect { ReminderMailer.schedule_email(reminder, 'to@example.org').deliver_later(wait_until: reminder.date) }.to have_enqueued_job.at(reminder.date)
|
|
end
|
|
end
|
|
end
|