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 ]
|
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
|
def mail
|
||||||
|
|
|
@ -2,8 +2,8 @@ module ActionMailroom
|
||||||
module TestHelper
|
module TestHelper
|
||||||
# Create an InboundEmail record using an eml fixture in the format of message/rfc822
|
# 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+.
|
# referenced with +fixture_name+ located in +test/fixtures/files/fixture_name+.
|
||||||
def create_inbound_email(fixture_name)
|
def create_inbound_email(fixture_name, status: :processing)
|
||||||
ActionMailroom::InboundEmail.create!.tap do |inbound_email|
|
ActionMailroom::InboundEmail.create!(status: status).tap do |inbound_email|
|
||||||
inbound_email.raw_email.attach \
|
inbound_email.raw_email.attach \
|
||||||
ActiveStorage::Blob.create_after_upload! \
|
ActiveStorage::Blob.create_after_upload! \
|
||||||
io: file_fixture(fixture_name).open, filename: fixture_name, content_type: 'message/rfc822'
|
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