1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
# frozen_string_literal: true
require_relative "../../test_helper"
class BouncingWithReplyMailbox < ActionMailbox::Base
def process
bounce_with BounceMailer.bounce(to: mail.from)
end
end
class BouncingWithImmediateReplyMailbox < ActionMailbox::Base
def process
bounce_now_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
teardown do
ActionMailer::Base.deliveries.clear
end
test "bouncing with a reply" do
perform_enqueued_jobs only: ActionMailer::MailDeliveryJob do
BouncingWithReplyMailbox.receive @inbound_email
end
assert_predicate @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
test "bouncing now with a reply" do
assert_no_enqueued_emails do
BouncingWithImmediateReplyMailbox.receive @inbound_email
end
assert_predicate @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
|