import 'package:buzz/shared/l10n/l10n.dart'; import 'package:buzz/shared/theme/theme_provider.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:shared_preferences/shared_preferences.dart'; void main() { test('follows the system by default and persists explicit choices', () async { SharedPreferences.setMockInitialValues({}); final prefs = await SharedPreferences.getInstance(); final container = ProviderContainer( overrides: [savedPrefsProvider.overrideWithValue(prefs)], ); addTearDown(container.dispose); expect(container.read(appLocaleProvider), isNull); container .read(appLocaleProvider.notifier) .setLocale(const Locale('zh', 'CN')); expect(container.read(appLocaleProvider), const Locale('zh', 'CN')); expect(prefs.getString('buzz_locale'), 'zh_CN'); container.read(appLocaleProvider.notifier).setLocale(null); expect(container.read(appLocaleProvider), isNull); expect(prefs.getString('buzz_locale'), 'system'); }); test('restores a saved English choice', () async { SharedPreferences.setMockInitialValues({'buzz_locale': 'en'}); final prefs = await SharedPreferences.getInstance(); final container = ProviderContainer( overrides: [savedPrefsProvider.overrideWithValue(prefs)], ); addTearDown(container.dispose); expect(container.read(appLocaleProvider), const Locale('en')); }); test('loads Simplified Chinese labels for core mobile surfaces', () async { final l10n = await AppLocalizations.delegate.load( const Locale('zh', 'CN'), ); expect(l10n.activityTitle, '动态'); expect(l10n.searchPrompt, '搜索消息、频道和人员'); expect(l10n.manageChannel, '管理频道'); expect(l10n.replyInThreadHint, '在话题中回复…'); }); }