feat(test): update oauth handling and improve preferences management

This commit is contained in:
mso7nueh
2025-12-01 23:51:40 +03:00
parent 9fcfac87d4
commit 965ae2f02b
11 changed files with 902 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
import 'package:eatvio_app/core/utils/toasts.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
group('Toasts', () {
setUp(() {
// Mock Fluttertoast plugin
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(
const MethodChannel('PonnamKarthik/fluttertoast'),
(MethodCall methodCall) async {
return null;
},
);
});
tearDown(() {
// Clear mock handlers
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(
const MethodChannel('PonnamKarthik/fluttertoast'),
null,
);
});
test('showInfoToast - вызывает Fluttertoast без ошибок', () {
expect(() => showInfoToast('Информационное сообщение'), returnsNormally);
});
test('showErrorToast - вызывает Fluttertoast без ошибок', () {
expect(() => showErrorToast('Сообщение об ошибке'), returnsNormally);
});
test('showSuccessToast - вызывает Fluttertoast без ошибок', () {
expect(() => showSuccessToast('Успешное сообщение'), returnsNormally);
});
test('showInternetConnectionToast - вызывает Fluttertoast без ошибок', () {
expect(() => showInternetConnectionToast(), returnsNormally);
});
test('showInfoToast - работает с пустой строкой', () {
expect(() => showInfoToast(''), returnsNormally);
});
test('showErrorToast - работает с длинным сообщением', () {
final longMessage = 'Очень длинное сообщение об ошибке ' * 10;
expect(() => showErrorToast(longMessage), returnsNormally);
});
test('showSuccessToast - работает с различными сообщениями', () {
expect(() => showSuccessToast('Операция выполнена успешно'), returnsNormally);
expect(() => showSuccessToast('Данные сохранены'), returnsNormally);
expect(() => showSuccessToast('Загрузка завершена'), returnsNormally);
});
});
}