refactor(mailer): for devise mailer set locale in dedicated action
This commit is contained in:
parent
172aeec3dc
commit
36fc535386
3 changed files with 22 additions and 3 deletions
|
@ -32,8 +32,6 @@ module MailerDefaultsConfigurableConcern
|
|||
def configure_defaults_for_user(user)
|
||||
return if !user.is_a?(User) # not for super-admins
|
||||
|
||||
I18n.locale = user.locale
|
||||
|
||||
if user.preferred_domain_demarches_gouv_fr?
|
||||
set_currents_for_demarches_gouv_fr
|
||||
else
|
||||
|
|
|
@ -33,7 +33,10 @@ class DeviseUserMailer < Devise::Mailer
|
|||
opts[:reply_to] = Current.no_reply_email
|
||||
@procedure = opts[:procedure_after_confirmation] || nil
|
||||
@prefill_token = opts[:prefill_token]
|
||||
super
|
||||
|
||||
I18n.with_locale(record.locale) do
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
def self.critical_email?(action_name)
|
||||
|
|
|
@ -19,6 +19,24 @@ RSpec.describe DeviseUserMailer, type: :mailer do
|
|||
expect { subject.deliver_later }.to have_enqueued_job.on_queue(Rails.application.config.action_mailer.deliver_later_queue_name)
|
||||
end
|
||||
end
|
||||
|
||||
describe "i18n" do
|
||||
context "when locale is fr" do
|
||||
let(:user) { create(:user, locale: :fr) }
|
||||
|
||||
it "uses fr locale" do
|
||||
expect(subject.body).to include("Activez votre compte")
|
||||
end
|
||||
end
|
||||
|
||||
context "when locale is en" do
|
||||
let(:user) { create(:user, locale: :en) }
|
||||
|
||||
it "uses en locale" do
|
||||
expect(subject.body).to include("Activate account")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'headers for user' do
|
||||
|
|
Loading…
Reference in a new issue