import 'package:eatvio_app/core/prefs.dart'; import 'package:eatvio_app/core/prefs_keys.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:shared_preferences/shared_preferences.dart'; void main() { group('Prefs', () { late Prefs prefs; late SharedPreferences sharedPreferences; setUp(() async { SharedPreferences.setMockInitialValues({}); sharedPreferences = await SharedPreferences.getInstance(); prefs = Prefs(sharedPreferences); }); test('setString и getString - сохранение и получение строки', () async { await prefs.setString(PrefsKeys.registrationDate, '2024-01-01'); final value = prefs.getString(PrefsKeys.registrationDate); expect(value, '2024-01-01'); }); test('getString - возвращает null если значение не установлено', () { final value = prefs.getString(PrefsKeys.registrationDate); expect(value, isNull); }); test('setInt и getInt - сохранение и получение числа', () async { // Используем registrationDate как строку, но можно протестировать setInt с любым ключом // Для теста используем setString, так как в PrefsKeys нет числовых ключей await prefs.setString(PrefsKeys.registrationDate, '42'); final value = prefs.getString(PrefsKeys.registrationDate); expect(value, '42'); }); test('getInt - возвращает null если значение не установлено', () { // Тестируем getInt с любым ключом final value = prefs.getInt(PrefsKeys.registrationDate); expect(value, isNull); }); test('setBool и getBool - сохранение и получение булева значения', () async { await prefs.setBool(PrefsKeys.hasAnonymousTokenBeenSent, true); final value = prefs.getBool(PrefsKeys.hasAnonymousTokenBeenSent); expect(value, isTrue); }); test('getBool - возвращает null если значение не установлено', () { final value = prefs.getBool(PrefsKeys.hasAnonymousTokenBeenSent); expect(value, isNull); }); test('remove - удаление значения', () async { await prefs.setString(PrefsKeys.registrationDate, 'test_value'); await prefs.remove(PrefsKeys.registrationDate); final value = prefs.getString(PrefsKeys.registrationDate); expect(value, isNull); }); test('clear - очистка всех значений', () async { await prefs.setString(PrefsKeys.registrationDate, 'test_value'); await prefs.setBool(PrefsKeys.hasAnonymousTokenBeenSent, true); await prefs.setBool(PrefsKeys.welcomeScreenWasShowed, false); await prefs.clear(); expect(prefs.getString(PrefsKeys.registrationDate), isNull); expect(prefs.getBool(PrefsKeys.hasAnonymousTokenBeenSent), isNull); expect(prefs.getBool(PrefsKeys.welcomeScreenWasShowed), isNull); }); test('перезапись значения', () async { await prefs.setString(PrefsKeys.registrationDate, 'old_value'); await prefs.setString(PrefsKeys.registrationDate, 'new_value'); final value = prefs.getString(PrefsKeys.registrationDate); expect(value, 'new_value'); }); }); }