diff --git a/test/app_test.dart b/test/app_test.dart index 44f7174..55c7c20 100644 --- a/test/app_test.dart +++ b/test/app_test.dart @@ -8,15 +8,19 @@ import 'package:biteplan/features/converter/providers/converter_provider.dart'; import 'package:biteplan/features/meal_planner/providers/meal_planner_provider.dart'; import 'package:biteplan/features/shopping_list/providers/shopping_list_provider.dart'; +late MealPlannerProvider _meals; +late ConverterProvider _converter; +late ShoppingListProvider _shopping; + Future _pumpApp(WidgetTester tester) async { await tester.binding.setSurfaceSize(const Size(800, 1600)); addTearDown(() => tester.binding.setSurfaceSize(null)); await tester.pumpWidget( MultiProvider( providers: [ - ChangeNotifierProvider(create: (_) => MealPlannerProvider()..load()), - ChangeNotifierProvider(create: (_) => ConverterProvider()..loadDb()), - ChangeNotifierProvider(create: (_) => ShoppingListProvider()..load()), + ChangeNotifierProvider.value(value: _meals), + ChangeNotifierProvider.value(value: _converter), + ChangeNotifierProvider.value(value: _shopping), ], child: const BitePlanApp(), ), @@ -28,8 +32,18 @@ Finder _appBarTitle(String text) => find.descendant( of: find.byType(AppBar), matching: find.text(text)); void main() { - setUp(() { + TestWidgetsFlutterBinding.ensureInitialized(); + + // I provider sono creati e caricati nel setUp (fuori dalla zona FakeAsync + // di testWidgets): il caricamento async dentro il body può bloccare la suite. + setUp(() async { SharedPreferences.setMockInitialValues({}); + _meals = MealPlannerProvider(); + _converter = ConverterProvider(); + _shopping = ShoppingListProvider(); + await _meals.load(); + await _converter.loadDb(); + await _shopping.load(); }); group('BitePlanApp', () { diff --git a/test/features/converter/pages/converter_page_test.dart b/test/features/converter/pages/converter_page_test.dart index 01cd071..a3b8f5f 100644 --- a/test/features/converter/pages/converter_page_test.dart +++ b/test/features/converter/pages/converter_page_test.dart @@ -15,10 +15,14 @@ const _riso = ConversionEntry(food: 'riso', method: 'bollitura', yieldFactor: 3.0); void main() { + TestWidgetsFlutterBinding.ensureInitialized(); late ConverterProvider provider; - setUp(() { + // loadDb nel setUp (fuori dalla zona FakeAsync di testWidgets): + // caricarlo dentro il body del test può bloccare la suite. + setUp(() async { provider = ConverterProvider(); + await provider.loadDb(); }); group('ConverterPage — ricerca', () { @@ -28,7 +32,6 @@ void main() { }); testWidgets('la ricerca mostra risultati dal database', (tester) async { - await provider.loadDb(); await tester.pumpApp(_page(provider)); await tester.enterText(find.byType(TextField), 'riso'); await tester.pump(); @@ -37,7 +40,6 @@ void main() { testWidgets('ricerca senza corrispondenze mostra "Nessun risultato"', (tester) async { - await provider.loadDb(); await tester.pumpApp(_page(provider)); await tester.enterText(find.byType(TextField), 'xyzabc'); await tester.pump(); @@ -46,7 +48,6 @@ void main() { testWidgets('tap su un risultato apre la card di conversione', (tester) async { - await provider.loadDb(); await tester.pumpApp(_page(provider)); await tester.enterText(find.byType(TextField), 'riso'); await tester.pump(); diff --git a/test/features/guide/pages/guide_page_test.dart b/test/features/guide/pages/guide_page_test.dart index 1f673d7..1cb1fbd 100644 --- a/test/features/guide/pages/guide_page_test.dart +++ b/test/features/guide/pages/guide_page_test.dart @@ -12,25 +12,26 @@ void main() { expect(find.text('Spesa'), findsOneWidget); }); + // _DocCard rende i titoli con toUpperCase() testWidgets('la tab iniziale è Pasti', (tester) async { await tester.pumpApp(const GuidePage()); - expect(find.text('Aggiungere un alimento'), findsOneWidget); + expect(find.text('AGGIUNGERE UN ALIMENTO'), findsOneWidget); }); testWidgets('la tab Converti mostra i suoi contenuti', (tester) async { await tester.pumpApp(const GuidePage()); await tester.tap(find.text('Converti')); await tester.pumpAndSettle(); - expect(find.text('Come usarlo'), findsOneWidget); - expect(find.text('Alimenti disponibili'), findsOneWidget); + expect(find.text('COME USARLO'), findsOneWidget); + expect(find.text('ALIMENTI DISPONIBILI'), findsOneWidget); }); testWidgets('la tab Spesa mostra i suoi contenuti', (tester) async { await tester.pumpApp(const GuidePage()); await tester.tap(find.text('Spesa')); await tester.pumpAndSettle(); - expect(find.text('Aggiungere un elemento'), findsOneWidget); - expect(find.text('Spuntare un elemento'), findsOneWidget); + expect(find.text('AGGIUNGERE UN ELEMENTO'), findsOneWidget); + expect(find.text('SPUNTARE UN ELEMENTO'), findsOneWidget); }); }); } diff --git a/test/features/guide/widgets/info_bottom_sheet_test.dart b/test/features/guide/widgets/info_bottom_sheet_test.dart index d7e2625..643abaa 100644 --- a/test/features/guide/widgets/info_bottom_sheet_test.dart +++ b/test/features/guide/widgets/info_bottom_sheet_test.dart @@ -35,7 +35,7 @@ void main() { await _openSheet(tester); await tester.tap(find.text('Apri')); await tester.pumpAndSettle(); - expect(find.text('Aggiungere un alimento'), findsOneWidget); + expect(find.text('AGGIUNGERE UN ALIMENTO'), findsOneWidget); }); }); } diff --git a/test/shared/services/update_service_test.dart b/test/shared/services/update_service_test.dart index 79079e3..4fc021b 100644 --- a/test/shared/services/update_service_test.dart +++ b/test/shared/services/update_service_test.dart @@ -175,5 +175,5 @@ class _FakeHttpClientResponse extends Fake implements HttpClientResponse { @override Stream transform(StreamTransformer, S> streamTransformer) => - Stream.value(utf8.encode(body)).transform(streamTransformer); + Stream>.value(utf8.encode(body)).transform(streamTransformer); }