forked from eatvio/eatvio_app
86 lines
3.4 KiB
Dart
86 lines
3.4 KiB
Dart
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');
|
||
});
|
||
});
|
||
}
|
||
|