diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 1531fef754f..1d171e16f36 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -11,6 +11,7 @@ class ApplicationMailer < ActionMailer::Base layout "mailer" + around_action :use_default_locale after_deliver :record_delivery def record_delivery @@ -26,4 +27,10 @@ def record_delivery mailer: mailer_name) end end + + private + + def use_default_locale(&block) + I18n.with_locale(I18n.default_locale, &block) + end end diff --git a/test/mailers/owners_test.rb b/test/mailers/owners_test.rb index 12f27fa2b48..410fc99dda4 100644 --- a/test/mailers/owners_test.rb +++ b/test/mailers/owners_test.rb @@ -19,4 +19,16 @@ class OwnersMailerTest < ActionMailer::TestCase assert_equal email.subject, "Your role was updated for the #{@rubygem.name} gem" end end + + context "#owner_added" do + should "use default locale regardless of ambient I18n.locale" do + I18n.with_locale(:de) do + email = OwnersMailer.owner_added(@owner.id, @maintainer.id, @owner.id, @rubygem.id) + + assert_emails(1) { email.deliver_now } + assert_equal "User #{@maintainer.display_handle} was added as an owner to the #{@rubygem.name} gem", email.subject + assert_match "OWNER ADDED", email.body.to_s + end + end + end end