mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
Fix ensure_valid_locale_persisted and change public interface of service
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user