mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Refactor UserLocaleSetter public methods
This commit is contained in:
@@ -4,6 +4,6 @@ module I18nHelper
|
||||
end
|
||||
|
||||
def valid_locale(user)
|
||||
UserLocaleSetter.new(user).valid_locale_for_user
|
||||
UserLocaleSetter.new(user).valid_current_locale
|
||||
end
|
||||
end
|
||||
|
||||
@@ -19,8 +19,14 @@ class UserLocaleSetter
|
||||
current_user.update!(locale: valid_current_locale)
|
||||
end
|
||||
|
||||
def valid_locale_for_user
|
||||
valid_current_locale
|
||||
def valid_current_locale
|
||||
if current_user_locale && available_locale?(current_user_locale)
|
||||
current_user_locale
|
||||
elsif cookies[:locale] && available_locale?(cookies[:locale])
|
||||
cookies[:locale]
|
||||
else
|
||||
I18n.default_locale
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
@@ -39,16 +45,6 @@ class UserLocaleSetter
|
||||
end
|
||||
|
||||
def current_user_locale
|
||||
current_user.andand.locale
|
||||
end
|
||||
|
||||
def valid_current_locale
|
||||
if current_user_locale && available_locale?(current_user_locale)
|
||||
current_user_locale
|
||||
elsif cookies[:locale] && available_locale?(cookies[:locale])
|
||||
cookies[:locale]
|
||||
else
|
||||
I18n.default_locale
|
||||
end
|
||||
current_user&.locale
|
||||
end
|
||||
end
|
||||
|
||||
@@ -120,19 +120,19 @@ describe UserLocaleSetter do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#valid_locale_for_user" do
|
||||
describe "#valid_current_locale" do
|
||||
let(:service) { UserLocaleSetter.new(user) }
|
||||
|
||||
context "when the user has a locale set" do
|
||||
it "returns the user's locale" do
|
||||
user.update(locale: "es")
|
||||
expect(service.valid_locale_for_user).to eq "es"
|
||||
expect(service.valid_current_locale).to eq "es"
|
||||
end
|
||||
end
|
||||
|
||||
context "when the user has no locale set" do
|
||||
it "returns the default locale" do
|
||||
expect(service.valid_locale_for_user).to eq default_locale
|
||||
expect(service.valid_current_locale).to eq default_locale
|
||||
end
|
||||
end
|
||||
|
||||
@@ -140,7 +140,7 @@ describe UserLocaleSetter do
|
||||
let(:user) { nil }
|
||||
|
||||
it "returns the default locale" do
|
||||
expect(service.valid_locale_for_user).to eq default_locale
|
||||
expect(service.valid_current_locale).to eq default_locale
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user