forked from baron/baron-sso
feat: i18n 개선 및 userfront 로그인/로케일 보완
This commit is contained in:
88
userfront/test/locale_storage_web_test.dart
Normal file
88
userfront/test/locale_storage_web_test.dart
Normal 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,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user