import 'package:eatvio_app/core/app_initializer.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); group('AppBuildType', () { test('has prod value', () { expect(AppBuildType.prod, AppBuildType.prod); }); test('has tests value', () { expect(AppBuildType.tests, AppBuildType.tests); }); test('has dev value', () { expect(AppBuildType.dev, AppBuildType.dev); }); test('all values are distinct', () { expect(AppBuildType.prod != AppBuildType.tests, true); expect(AppBuildType.prod != AppBuildType.dev, true); expect(AppBuildType.tests != AppBuildType.dev, true); }); test('enum has all expected values', () { expect(AppBuildType.values.length, 3); expect(AppBuildType.values, contains(AppBuildType.prod)); expect(AppBuildType.values, contains(AppBuildType.tests)); expect(AppBuildType.values, contains(AppBuildType.dev)); }); test('enum can be compared', () { expect(AppBuildType.prod == AppBuildType.prod, true); expect(AppBuildType.prod == AppBuildType.dev, false); expect(AppBuildType.tests == AppBuildType.dev, false); }); }); group('AppInitializer', () { test('is a class', () { expect(AppInitializer, isA()); }); test('has initialize static method', () { expect(AppInitializer.initialize, isA()); }); test('has runAppWithSentry static method', () { expect(AppInitializer.runAppWithSentry, isA()); }); test('initialize accepts buildType parameter', () { // Проверяем что метод принимает именованный параметр buildType // без реального вызова (реальный initialize запускает DI, таймеры, // подписки и HTTP-запросы, которые невозможно корректно закрыть в тестах) const method = AppInitializer.initialize; expect(method, isA()); }); }); }