Skip to content

Commit

Permalink
Add specs
Browse files Browse the repository at this point in the history
  • Loading branch information
johnnyshields committed Sep 22, 2020
1 parent 7660286 commit fc0e9e2
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/delayed_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
ActiveSupport.on_load(:action_mailer) do
require 'delayed/performable_mailer'
ActionMailer::Base.extend(Delayed::DelayMail)
ActionMailer::Parameterized::Mailer.include(Delayed::DelayMail)
ActionMailer::Parameterized::Mailer.include(Delayed::DelayMail) if defined?(ActionMailer::Parameterized::Mailer)
end

module Delayed
Expand Down
26 changes: 26 additions & 0 deletions spec/performable_mailer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,29 @@ def signup(email)
end
end
end

if defined?(ActionMailer::Parameterized::Mailer)
describe ActionMailer::Parameterized::Mailer do
describe 'delay' do
it 'enqueues a PerformableEmail job' do
expect do
job = MyMailer.with(foo: 1, bar: 2).delay.signup('[email protected]')
expect(job.payload_object.class).to eq(Delayed::PerformableMailer)
expect(job.payload_object.object.class).to eq(ActionMailer::Parameterized::Mailer)
expect(job.payload_object.object.instance_variable_get('@mailer')).to eq(MyMailer)
expect(job.payload_object.object.instance_variable_get('@params')).to eq(foo: 1, bar: 2)
expect(job.payload_object.method_name).to eq(:signup)
expect(job.payload_object.args).to eq(['[email protected]'])
end.to change { Delayed::Job.count }.by(1)
end
end

describe 'delay on a mail object' do
it 'raises an exception' do
expect do
MyMailer.with(foo: 1, bar: 2).signup('[email protected]').delay
end.to raise_error(RuntimeError)
end
end
end
end

0 comments on commit fc0e9e2

Please sign in to comment.