mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Only deliver pending emails to the mailroom
Makes it easier to test without triggering this behavior.
This commit is contained in:
parent
d1329efd81
commit
26bfd1c59c
3 changed files with 14 additions and 3 deletions
|
@ -7,7 +7,7 @@ class ActionMailroom::InboundEmail < ActiveRecord::Base
|
|||
|
||||
enum status: %i[ pending processing delivered failed bounced ]
|
||||
|
||||
# after_create_commit :deliver_to_mailroom_later
|
||||
after_create_commit :deliver_to_mailroom_later, if: ->(r) { r.pending? }
|
||||
|
||||
|
||||
def mail
|
||||
|
|
|
@ -2,8 +2,8 @@ module ActionMailroom
|
|||
module TestHelper
|
||||
# Create an InboundEmail record using an eml fixture in the format of message/rfc822
|
||||
# referenced with +fixture_name+ located in +test/fixtures/files/fixture_name+.
|
||||
def create_inbound_email(fixture_name)
|
||||
ActionMailroom::InboundEmail.create!.tap do |inbound_email|
|
||||
def create_inbound_email(fixture_name, status: :processing)
|
||||
ActionMailroom::InboundEmail.create!(status: status).tap do |inbound_email|
|
||||
inbound_email.raw_email.attach \
|
||||
ActiveStorage::Blob.create_after_upload! \
|
||||
io: file_fixture(fixture_name).open, filename: fixture_name, content_type: 'message/rfc822'
|
||||
|
|
11
test/unit/inbound_email/deliver_to_mailroom.rb
Normal file
11
test/unit/inbound_email/deliver_to_mailroom.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
require_relative '../../test_helper'
|
||||
|
||||
class ActionMailroom::InboundEmail::DeliverToMailroomTest < ActiveSupport::TestCase
|
||||
include ActiveJob::TestHelper
|
||||
|
||||
test "pending emails are delivered to the mailroom" do
|
||||
assert_enqueued_jobs 1, only: ActionMailroom::DeliverInboundEmailToMailroomJob do
|
||||
create_inbound_email("welcome.eml", status: :pending)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue