import 'package:flutter_test/flutter_test.dart'; import 'package:userfront/core/i18n/locale_storage.dart'; import 'helpers/web_storage.dart'; void main() { setUp(() { LocaleStorage.forceMemoryStorageForTests(false); LocaleStorage.forceSessionStorageForTests(false); if (webStorage.isWeb) { webStorage.clear(); webStorage.clearSession(); } }); tearDown(() { LocaleStorage.forceMemoryStorageForTests(false); LocaleStorage.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; } LocaleStorage.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; } LocaleStorage.forceSessionStorageForTests(true); LocaleStorage.write('ko'); expect(webStorage.get('locale'), isNull); expect(webStorage.getSession('locale'), 'ko'); expect(LocaleStorage.read(), 'ko'); }, skip: !webStorage.isWeb, ); }