mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-21 22:31:46 +00:00
fix(login): address review feedback on language dropdown PR
- Fix import path: use i18n barrel instead of TranslationContext directly - Encapsulate localStorage key behind hasStoredLanguage() helper in settingsStore - Fix pt-BR detection: only map pt-BR to br, pt-PT now returns null correctly - Add comment linking server SUPPORTED_LANG_CODES to canonical client source - Extract /api/config inline handler to routes/publicConfig.ts - Add aria-haspopup, aria-expanded, role=listbox/option, aria-selected to dropdown - Add 8 tests for detectBrowserLanguage (FE-COMP-I18N-016–023) - Add 3 tests for setLanguageTransient (FE-STORE-SETTINGS-015–017)
This commit is contained in:
@@ -170,6 +170,37 @@ describe('settingsStore', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('FE-STORE-SETTINGS-015: setLanguageTransient updates state without touching localStorage', () => {
|
||||
it('sets language in state but does not write to localStorage', () => {
|
||||
localStorage.clear();
|
||||
|
||||
useSettingsStore.getState().setLanguageTransient('fr');
|
||||
|
||||
expect(useSettingsStore.getState().settings.language).toBe('fr');
|
||||
expect(localStorage.getItem('app_language')).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('FE-STORE-SETTINGS-016: setLanguageTransient rejects unsupported language code', () => {
|
||||
it('leaves state unchanged for an unknown code', () => {
|
||||
const before = useSettingsStore.getState().settings.language;
|
||||
|
||||
useSettingsStore.getState().setLanguageTransient('xx');
|
||||
|
||||
expect(useSettingsStore.getState().settings.language).toBe(before);
|
||||
});
|
||||
});
|
||||
|
||||
describe('FE-STORE-SETTINGS-017: setLanguageTransient does not overwrite an explicit localStorage choice', () => {
|
||||
it('localStorage remains unchanged after a transient set', () => {
|
||||
localStorage.setItem('app_language', 'de');
|
||||
|
||||
useSettingsStore.getState().setLanguageTransient('es');
|
||||
|
||||
expect(localStorage.getItem('app_language')).toBe('de');
|
||||
});
|
||||
});
|
||||
|
||||
describe('FE-STORE-SETTINGS-014: updateSetting API failure leaves optimistic state', () => {
|
||||
it('throws on API failure but keeps the optimistic state', async () => {
|
||||
server.use(
|
||||
|
||||
Reference in New Issue
Block a user