diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test_helper.rb | 8 | ||||
-rw-r--r-- | test/unit/mailbox/bouncing_test.rb | 29 |
2 files changed, 37 insertions, 0 deletions
diff --git a/test/test_helper.rb b/test/test_helper.rb index b042cfb679..264f9e8482 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -32,3 +32,11 @@ if ARGV.include?("-v") ActiveRecord::Base.logger = Logger.new(STDOUT) ActiveJob::Base.logger = Logger.new(STDOUT) end + +class BounceMailer < ActionMailer::Base + def bounce(to:) + mail from: "receiver@example.com", to: to, subject: "Your email was not delivered" do |format| + format.html { render plain: "Sorry!" } + end + end +end diff --git a/test/unit/mailbox/bouncing_test.rb b/test/unit/mailbox/bouncing_test.rb new file mode 100644 index 0000000000..6ac806ba29 --- /dev/null +++ b/test/unit/mailbox/bouncing_test.rb @@ -0,0 +1,29 @@ +require_relative '../../test_helper' + +class BouncingWithReplyMailbox < ActionMailbox::Base + def process + bounce_with BounceMailer.bounce(to: mail.from) + end +end + +class ActionMailbox::Base::BouncingTest < ActiveSupport::TestCase + include ActionMailer::TestHelper + + setup do + @inbound_email = create_inbound_email_from_mail \ + from: "sender@example.com", to: "replies@example.com", subject: "Bounce me" + end + + test "bouncing with a reply" do + perform_enqueued_jobs only: ActionMailer::DeliveryJob do + BouncingWithReplyMailbox.receive @inbound_email + end + + assert @inbound_email.bounced? + assert_emails 1 + + mail = ActionMailer::Base.deliveries.last + assert_equal %w[ sender@example.com ], mail.to + assert_equal "Your email was not delivered", mail.subject + end +end |