Skip to content

Commit 6473801

Browse files
committed
Add compatibility for have_enqueued_mail (rails 7)
1. ActionMailer::DeliveryJob does not exist anymore 2. ActionMailer::Parameterized::DeliveryJob According to my research they have both been superseeded by ActionMailer::MailDeliveryJob Closes rspec#2531
1 parent 1fe6c2e commit 6473801

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/rspec/rails/matchers/have_enqueued_mail.rb

+4-2
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,13 @@ def mail_job_message(job)
131131
end
132132

133133
def legacy_mail?(job)
134-
job[:job] <= ActionMailer::DeliveryJob
134+
defined?(ActionMailer::DeliveryJob) && job[:job] <= ActionMailer::DeliveryJob
135135
end
136136

137137
def parameterized_mail?(job)
138-
RSpec::Rails::FeatureCheck.has_action_mailer_parameterized? && job[:job] <= ActionMailer::Parameterized::DeliveryJob
138+
base_mailer = defined?(ActionMailer::Parameterized::DeliveryJob) ? ActionMailer::Parameterized::DeliveryJob : ActionMailer::MailDeliveryJob
139+
140+
RSpec::Rails::FeatureCheck.has_action_mailer_parameterized? && job[:job] <= base_mailer
139141
end
140142

141143
def unified_mail?(job)

0 commit comments

Comments
 (0)