Добавляйте вложения с помощью ActionMailbox TestHelper - PullRequest
0 голосов
/ 09 июля 2020

Я хочу проверить вложения с помощью почтового ящика действий TestHelper . Я вижу, что параметры помощника по тестированию передаются объекту почты, но я не могу добавлять вложения. В итоге они равны нулю.

Вот что у меня:

receive_inbound_email_from_mail(
      attachments: [
        File.new(File.join(File.dirname(__FILE__), '../support/fixtures/image.jpeg'))
      ],
      from: 'from@covfefe.test,
      to: 'acme@example.test'
)

Как это работает?

1 Ответ

0 голосов
/ 10 июля 2020

Это поддерживается в Edge , но ActionMailbox :: TestHelper 6.0.3.2 еще не реализовал его.

В качестве обходного пути я придумал следующее:

subject do
  mail = Mail.new do
    to      'nicolas@test.lindsaar.net.au'
    from    'Mikel Lindsaar <mikel@test.lindsaar.net.au>'
    subject 'First multipart email sent with Mail'

    text_part do
      body 'Here is the attachment you wanted'
    end

    html_part do
      content_type 'text/html; charset=UTF-8'
      body '<h1>Funky Title</h1><p>Here is the attachment you wanted</p>'
    end

    add_file File.join(File.dirname(__FILE__), '../support/fixtures/image.jpeg')
  end

  # Tap the route for processing.
  create_inbound_email_from_source(mail.to_s, status: :processing).tap(&:route)
end

Если вы используете Edge или более новую версию, это должно работать:

receive_inbound_email_from_mail do |mail|
  mail.to "David Heinemeier Hansson <david@loudthinking.com>"
  mail.from "Bilbo Baggins <bilbo@bagend.com>"
  mail.subject "Come down to the Shire!"

  mail.text_part do |part|
    part.body "Please join us for a party at Bag End"
  end

  mail.html_part do |part|
    part.body "<h1>Please join us for a party at Bag End</h1>"
  end

  mail.add_file File.join(File.dirname(__FILE__), '../support/fixtures/image.jpeg')
end

Примечание: вам нужно будет изменить путь к файлу в соответствии с вашими потребностями. А методы receive_ такие же, как create_, но обрабатывают почту.

...