From 88453093d5c74aad489feb34dc9062f55f258dd9 Mon Sep 17 00:00:00 2001
From: Yuichi Takeuchi <yuichi.takeuchi@takeyuweb.co.jp>
Date: Sat, 19 Jan 2019 23:28:41 +0900
Subject: Fix that adding attachments lose a body

---
 .../action_mailbox/inbound_emails_controller.rb    |  2 +-
 .../inbound_emails_controller_test.rb              | 23 +++++++++++++++++++++-
 2 files changed, 23 insertions(+), 2 deletions(-)

(limited to 'actionmailbox')

diff --git a/actionmailbox/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb b/actionmailbox/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb
index 2cde3db8a0..d051dfe665 100644
--- a/actionmailbox/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb
+++ b/actionmailbox/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb
@@ -22,7 +22,7 @@ module Rails
       def new_mail
         Mail.new(params.require(:mail).permit(:from, :to, :cc, :bcc, :in_reply_to, :subject, :body).to_h).tap do |mail|
           params[:mail][:attachments].to_a.each do |attachment|
-            mail.attachments[attachment.original_filename] = { filename: attachment.path, content_type: attachment.content_type }
+            mail.add_file(filename: attachment.path, content: attachment.read)
           end
         end
       end
diff --git a/actionmailbox/test/controllers/rails/action_mailbox/inbound_emails_controller_test.rb b/actionmailbox/test/controllers/rails/action_mailbox/inbound_emails_controller_test.rb
index 60077d86e2..9da1c04303 100644
--- a/actionmailbox/test/controllers/rails/action_mailbox/inbound_emails_controller_test.rb
+++ b/actionmailbox/test/controllers/rails/action_mailbox/inbound_emails_controller_test.rb
@@ -4,6 +4,25 @@ require "test_helper"
 
 class Rails::Conductor::ActionMailbox::InboundEmailsControllerTest < ActionDispatch::IntegrationTest
   test "create inbound email" do
+    with_rails_env("development") do
+      assert_difference -> { ActionMailbox::InboundEmail.count }, +1 do
+        post rails_conductor_inbound_emails_path, params: {
+          mail: {
+            from: "Jason Fried <jason@37signals.com>",
+            to: "Replies <replies@example.com>",
+            bcc: "",
+            in_reply_to: "<4e6e35f5a38b4_479f13bb90078178@small-app-01.mail>",
+            subject: "Create",
+            body: "New Mail"
+          }
+        }
+      end
+
+      assert_equal "New Mail", ActionMailbox::InboundEmail.last.mail.decoded
+    end
+  end
+
+  test "create inbound email with attachments" do
     with_rails_env("development") do
       assert_difference -> { ActionMailbox::InboundEmail.count }, +1 do
         post rails_conductor_inbound_emails_path, params: {
@@ -19,7 +38,9 @@ class Rails::Conductor::ActionMailbox::InboundEmailsControllerTest < ActionDispa
         }
       end
 
-      assert_equal 2, ActionMailbox::InboundEmail.last.mail.attachments.size
+      mail = ActionMailbox::InboundEmail.last.mail
+      assert_equal 2, mail.attachments.size
+      assert_equal "Let's talk about these images:", mail.text_part.decoded
     end
   end
 
-- 
cgit v1.2.3