Fix ensure_valid_locale_persisted and change public interface of service

This commit is contained in:
Matt-Yorkley
2020-07-03 16:32:46 +02:00
parent cc7b5e2df3
commit 0c2fd4bfd2
4 changed files with 9 additions and 8 deletions

View File

@@ -52,9 +52,10 @@ module Spree
def ensure_valid_locale_persisted
# When creating a new user session we have to wait until after a successful
# login to be able to persist a locale on the current user
# login to be able to persist a selected locale on the current user
UserLocaleSetter.ensure_valid_locale_persisted(spree_current_user)
UserLocaleSetter.new(spree_current_user, params[:locale], cookies).
ensure_valid_locale_persisted
end
end
end

View File

@@ -1,6 +1,6 @@
module I18nHelper
def set_locale
UserLocaleSetter.new(spree_current_user, params[:locale], cookies).call
UserLocaleSetter.new(spree_current_user, params[:locale], cookies).set_locale
end
def valid_locale(user)

View File

@@ -7,17 +7,17 @@ class UserLocaleSetter
@cookies = cookies
end
def call
def set_locale
save_locale_from_params
save_locale_from_cookies
I18n.locale = valid_current_locale
end
def self.ensure_valid_locale_persisted(user)
return unless user && !available_locale?(user.locale)
def ensure_valid_locale_persisted
return unless current_user && !available_locale?(current_user.locale)
user.update!(locale: I18n.default_locale)
current_user.update!(locale: valid_current_locale)
end
def self.valid_locale_for_user(user)

View File

@@ -175,7 +175,7 @@ feature "Authentication", js: true do
user.update!(locale: nil)
end
xit "logs in successfully and uses the locale from cookies" do
it "logs in successfully and uses the locale from cookies" do
page.driver.browser.manage.add_cookie(name: 'locale', value: 'es')
fill_in_and_submit_login_form(user)