i18n: Add locale to backend (#102233)

This commit is contained in:
Laura Fernández
2025-03-31 15:59:07 +02:00
committed by GitHub
parent 7808cc960d
commit 4ad0492d3d
21 changed files with 145 additions and 12 deletions
@@ -92,6 +92,7 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
WeekStart: &weekStartOne,
JSONData: &pref.PreferenceJSONData{
Language: "en-GB",
Locale: "en-US",
},
},
pref.Preference{
@@ -103,6 +104,7 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
WeekStart: &weekStartTwo,
JSONData: &pref.PreferenceJSONData{
Language: "en-AU",
Locale: "es-ES",
},
},
)
@@ -118,6 +120,7 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
HomeDashboardID: 4,
JSONData: &pref.PreferenceJSONData{
Language: "en-AU",
Locale: "es-ES",
},
}
if diff := cmp.Diff(expected, preference); diff != "" {
@@ -137,6 +140,7 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
HomeDashboardID: 1,
JSONData: &pref.PreferenceJSONData{
Language: "en-GB",
Locale: "en-US",
},
}
if diff := cmp.Diff(expected, preference); diff != "" {
@@ -157,6 +161,9 @@ func TestGetDefaults_JSONData(t *testing.T) {
orgPreferencesWithLanguageJsonData := pref.PreferenceJSONData{
Language: "en-GB",
}
orgPreferencesWithLocaleJsonData := pref.PreferenceJSONData{
Locale: "en-US",
}
team2PreferencesJsonData := pref.PreferenceJSONData{}
team1PreferencesJsonData := pref.PreferenceJSONData{}
@@ -217,6 +224,36 @@ func TestGetDefaults_JSONData(t *testing.T) {
}, preference)
})
t.Run("user JSONData with missing locale does not override org preference", func(t *testing.T) {
prefService := &Service{
store: newFake(),
defaults: prefsFromConfig(setting.NewCfg()),
}
insertPrefs(t, prefService.store,
pref.Preference{
OrgID: 1,
JSONData: &orgPreferencesWithLocaleJsonData,
},
pref.Preference{
OrgID: 1,
UserID: 1,
JSONData: &userPreferencesJsonData,
},
)
query := &pref.GetPreferenceWithDefaultsQuery{OrgID: 1, UserID: 1}
preference, err := prefService.GetWithDefaults(context.Background(), query)
require.NoError(t, err)
require.Equal(t, &pref.Preference{
WeekStart: &weekStart,
JSONData: &pref.PreferenceJSONData{
Locale: "en-US",
QueryHistory: queryPreference,
},
}, preference)
})
t.Run("teams have precedence over org and are read in ascending order", func(t *testing.T) {
prefService := &Service{
store: newFake(),