diff --git a/test/core/internet_connection_cubit/internet_connection_cubit_test.dart b/test/core/internet_connection_cubit/internet_connection_cubit_test.dart index 78da97a4..946eefd2 100644 --- a/test/core/internet_connection_cubit/internet_connection_cubit_test.dart +++ b/test/core/internet_connection_cubit/internet_connection_cubit_test.dart @@ -1,6 +1,7 @@ import 'package:eatvio_app/core/internet_connection_cubit/internet_connection_cubit.dart'; import 'package:eatvio_app/core/internet_connection_cubit/internet_connection_state.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { @@ -10,7 +11,15 @@ void main() { late InternetConnectionCubit cubit; const MethodChannel connectivityChannel = MethodChannel('dev.fluttercommunity.plus/connectivity'); - setUp(() { + setUp(() async { + // Инициализируем dotenv для тестов + dotenv.loadFromString(envString: ''' +BASE_URL=https://api.example.com +DEV_BASE_URL=https://dev-api.example.com +GOOGLE_CHECK_URL=https://www.google.com +YANDEX_CHECK_URL=https://ya.ru +'''); + // Мокируем MethodChannel для connectivity TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler( connectivityChannel, @@ -37,20 +46,27 @@ void main() { } }); - test('начальное состояние - isInternetAvailable = true', () { + test('начальное состояние - isInternetAvailable = true', () async { cubit = InternetConnectionCubit(); + + // Ждем завершения асинхронных операций, запущенных в конструкторе + await Future.delayed(const Duration(milliseconds: 500)); + expect(cubit.state.isInternetAvailable, isTrue); }); test('checkConnection - успешная проверка с интернетом', () async { cubit = InternetConnectionCubit(); - // Ждем немного, чтобы cubit инициализировался - await Future.delayed(const Duration(milliseconds: 100)); + // Ждем завершения асинхронных операций, запущенных в конструкторе + await Future.delayed(const Duration(milliseconds: 500)); // Проверяем, что метод checkConnection не выбрасывает исключений await cubit.checkConnection(); + // Ждем завершения обновления состояния + await Future.delayed(const Duration(milliseconds: 500)); + // Состояние должно быть определено (true или false в зависимости от реального состояния) expect(cubit.state, isA()); }); @@ -60,16 +76,24 @@ void main() { // так как Connectivity создается внутри cubit // Оставим базовую проверку, что метод не падает cubit = InternetConnectionCubit(); - await Future.delayed(const Duration(milliseconds: 100)); + + // Ждем завершения асинхронных операций, запущенных в конструкторе + await Future.delayed(const Duration(milliseconds: 500)); // Просто проверяем, что метод выполняется без ошибок await cubit.checkConnection(); + + // Ждем завершения обновления состояния + await Future.delayed(const Duration(milliseconds: 500)); + expect(cubit.state, isA()); }); test('close - корректно закрывает cubit и освобождает ресурсы', () async { cubit = InternetConnectionCubit(); - await Future.delayed(const Duration(milliseconds: 100)); + + // Ждем завершения асинхронных операций, запущенных в конструкторе + await Future.delayed(const Duration(milliseconds: 500)); await cubit.close();