Skip to content

Commit

Permalink
Add optional wait param for Drill::Mail::LetterOpener#deliver_later
Browse files Browse the repository at this point in the history
  • Loading branch information
robot-den committed Jul 26, 2019
1 parent 5e46f9b commit 7151982
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
6 changes: 5 additions & 1 deletion lib/drill/mail/letter_opener.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,16 @@ def initialize(
end

def deliver
return if params.skip_delivery

prepare_mail!

delivery_method.deliver!(mail)
end

alias_method :deliver_later, :deliver
def deliver_later(wait: nil)
deliver
end

private

Expand Down
30 changes: 30 additions & 0 deletions spec/drill/mail/letter_opener_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@
reply_to: '[email protected]',
cc: '[email protected]',
to: '[email protected]',
skip_delivery: skip_delivery,
vars: {
foo_bar: 'foo_bar',
bar_foo: 'bar_foo'
}
)
end
let(:skip_delivery) { false }
let(:mail_double) { Mail.new }
let(:delivery_method_double) do
instance_double(LetterOpener::DeliveryMethod, deliver!: true)
Expand Down Expand Up @@ -92,5 +94,33 @@
# TODO: implement this
xit 'handles error'
end

describe '#deliver_later' do
context "when 'skip_delivery' is true" do
let(:skip_delivery) { true }

it "doesn't call " do
expect(delivery_method_double).not_to receive(:deliver!)

mail.deliver_later
end
end

context 'when `wait` param is not present' do
it 'calls perform_async on worker' do
expect(mail).to receive(:deliver).and_call_original
expect(delivery_method_double).to receive(:deliver!)
mail.deliver_later
end
end

context 'when `wait` param is present' do
it 'calls perform_in on worker' do
expect(mail).to receive(:deliver).and_call_original
expect(delivery_method_double).to receive(:deliver!)
mail.deliver_later(wait: 10)
end
end
end
end
end

0 comments on commit 7151982

Please sign in to comment.