1
0
forked from baron/baron-sso

feat: i18n 개선 및 userfront 로그인/로케일 보완

This commit is contained in:
Lectom C Han
2026-02-12 21:25:26 +09:00
parent b6d3b69cda
commit dfa2fc2406
60 changed files with 5724 additions and 1734 deletions

View File

@@ -0,0 +1,88 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:userfront/core/i18n/locale_storage.dart';
import 'package:userfront/core/i18n/locale_storage_web.dart' as locale_web;
import 'helpers/web_storage.dart';
void main() {
setUp(() {
locale_web.LocaleStorageImpl.forceMemoryStorageForTests(false);
locale_web.LocaleStorageImpl.forceSessionStorageForTests(false);
if (webStorage.isWeb) {
webStorage.clear();
webStorage.clearSession();
}
});
tearDown(() {
locale_web.LocaleStorageImpl.forceMemoryStorageForTests(false);
locale_web.LocaleStorageImpl.forceSessionStorageForTests(false);
if (webStorage.isWeb) {
webStorage.clear();
webStorage.clearSession();
}
});
test(
'localStorage write/read (웹)',
() {
if (!webStorage.isWeb) {
return;
}
LocaleStorage.write('ko');
expect(webStorage.get('locale'), 'ko');
expect(LocaleStorage.read(), 'ko');
},
skip: !webStorage.isWeb,
);
test(
'legacy key에서 locale로 마이그레이션 (웹)',
() {
if (!webStorage.isWeb) {
return;
}
webStorage.set('baron_locale', 'en');
expect(LocaleStorage.read(), 'en');
expect(webStorage.get('locale'), 'en');
expect(webStorage.get('baron_locale'), isNull);
},
skip: !webStorage.isWeb,
);
test(
'localStorage 접근이 차단되면 메모리 fallback (웹)',
() {
if (!webStorage.isWeb) {
return;
}
locale_web.LocaleStorageImpl.forceMemoryStorageForTests(true);
LocaleStorage.write('en');
expect(webStorage.get('locale'), isNull);
expect(webStorage.getSession('locale'), isNull);
expect(LocaleStorage.read(), 'en');
},
skip: !webStorage.isWeb,
);
test(
'localStorage 접근이 차단되면 sessionStorage로 fallback (웹)',
() {
if (!webStorage.isWeb) {
return;
}
locale_web.LocaleStorageImpl.forceSessionStorageForTests(true);
LocaleStorage.write('ko');
expect(webStorage.get('locale'), isNull);
expect(webStorage.getSession('locale'), 'ko');
expect(LocaleStorage.read(), 'ko');
},
skip: !webStorage.isWeb,
);
}