From 4bee9c149848dde6ee46fb024e707b83edd81c67 Mon Sep 17 00:00:00 2001 From: m3mo Date: Tue, 3 Feb 2026 19:44:53 +0100 Subject: [PATCH] Add test helpers for widget testing Provides reusable MaterialApp wrappers with localization support for Flutter widget tests. --- test/helpers/test_helpers.dart | 57 ++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 test/helpers/test_helpers.dart diff --git a/test/helpers/test_helpers.dart b/test/helpers/test_helpers.dart new file mode 100644 index 0000000..6cbc532 --- /dev/null +++ b/test/helpers/test_helpers.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:agenda_tasks/l10n/app_localizations.dart'; + +/// Wraps a widget with MaterialApp and localization support for testing +Widget createTestableWidget(Widget child) { + return MaterialApp( + localizationsDelegates: const [ + AppLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: const [ + Locale('en'), + Locale('de'), + ], + locale: const Locale('en'), + home: Scaffold(body: child), + ); +} + +/// Wraps a widget with MaterialApp for testing (no Scaffold) +Widget createTestableWidgetNoScaffold(Widget child) { + return MaterialApp( + localizationsDelegates: const [ + AppLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: const [ + Locale('en'), + Locale('de'), + ], + locale: const Locale('en'), + home: child, + ); +} + +/// Wraps a page widget with MaterialApp and navigation for testing +Widget createTestablePageWidget(Widget child) { + return MaterialApp( + localizationsDelegates: const [ + AppLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: const [ + Locale('en'), + Locale('de'), + ], + locale: const Locale('en'), + home: child, + ); +}