aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer/test/mailers/delayed_mailer.rb
blob: e6211ef028e4d0559cc0ad7a166f18bfdf09d73b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
require 'active_job/arguments'

class DelayedMailerError < StandardError; end

class DelayedMailer < ActionMailer::Base
  cattr_accessor :last_error
  cattr_accessor :last_rescue_from_instance

  rescue_from DelayedMailerError do |error|
    @@last_error = error
    @@last_rescue_from_instance = self
  end

  rescue_from ActiveJob::DeserializationError do |error|
    @@last_error = error
    @@last_rescue_from_instance = self
  end

  def test_message(*)
    mail(from: 'test-sender@test.com', to: 'test-receiver@test.com', subject: 'Test Subject', body: 'Test Body')
  end

  def test_raise(klass_name)
    raise klass_name.constantize, 'boom'
  end
end