From 67ba89a8c7b4c28cb38184ac15bc3c6aa8a20cbf Mon Sep 17 00:00:00 2001
From: David Heinemeier Hansson <david@loudthinking.com>
Date: Wed, 19 Sep 2018 16:21:53 -0700
Subject: Ensure raw email is created first

Otherwise jobs hanging off the InboundEmail won't be able to access the Active Storage data (as it won't have been uploaded yet).
---
 lib/action_mailroom/test_helper.rb | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

(limited to 'lib/action_mailroom')

diff --git a/lib/action_mailroom/test_helper.rb b/lib/action_mailroom/test_helper.rb
index 94321ecad3..06a38f75b6 100644
--- a/lib/action_mailroom/test_helper.rb
+++ b/lib/action_mailroom/test_helper.rb
@@ -3,11 +3,10 @@ module ActionMailroom
     # 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, status: :processing)
-      ActionMailroom::InboundEmail.create!(status: status).tap do |inbound_email|
-        inbound_email.raw_email.attach \
-          ActiveStorage::Blob.create_after_upload! \
+      raw_email = ActiveStorage::Blob.create_after_upload! \
             io: file_fixture(fixture_name).open, filename: fixture_name, content_type: 'message/rfc822'
-      end
-    end
+
+      ActionMailroom::InboundEmail.create!(status: status, raw_email: raw_email)
+    end    
   end
 end
-- 
cgit v1.2.3