diff --git a/lib/lotus/mailer.rb b/lib/lotus/mailer.rb index 9b87979..7c14dd4 100644 --- a/lib/lotus/mailer.rb +++ b/lib/lotus/mailer.rb @@ -8,6 +8,12 @@ module Lotus module Mailer + class MissingDeliveryDataError < ::StandardError + def initialize + super("Missing delivery data, please check 'from', 'to' and 'subject'") + end + end + DEFAULT_TEMPLATE = :txt.freeze CONTENT_TYPES = { @@ -134,6 +140,8 @@ module InstanceMethods # @since 0.1.0 def deliver mail.deliver + rescue ArgumentError + raise MissingDeliveryDataError end end diff --git a/test/delivery_test.rb b/test/delivery_test.rb index 3ba3536..4406189 100644 --- a/test/delivery_test.rb +++ b/test/delivery_test.rb @@ -6,6 +6,22 @@ Lotus::Mailer.deliveries.clear end + it 'can deliver with specified charset' do + CharsetMailer.deliver(charset: charset = 'iso-2022-jp') + + mail = Lotus::Mailer.deliveries.first + mail.charset.must_equal charset + mail.parts.first.charset.must_equal charset + end + + it "raises error when 'from' isn't specified" do + -> { MissingFromMailer.deliver }.must_raise Lotus::Mailer::MissingDeliveryDataError + end + + it "raises error when 'to' isn't specified" do + -> { MissingToMailer.deliver }.must_raise Lotus::Mailer::MissingDeliveryDataError + end + describe 'test delivery with hardcoded values' do before do WelcomeMailer.deliver @@ -102,14 +118,6 @@ body.must_include %(