Commit ae785d0

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-11-13 16:16:57
fix tests
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 10222f4
Changed files (3)
lib/screens/home.dart
@@ -2,6 +2,7 @@ import 'package:blood_pressure_app/components/dialoges/add_measurement.dart';
 import 'package:blood_pressure_app/components/legacy_measurement_list.dart';
 import 'package:blood_pressure_app/components/measurement_graph.dart';
 import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/central_callback.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
 import 'package:blood_pressure_app/screens/settings.dart';
 import 'package:blood_pressure_app/screens/statistics.dart';
@@ -26,14 +27,17 @@ class AppHome extends StatelessWidget {
   Widget build(BuildContext context) {
     final localizations = AppLocalizations.of(context)!;
     // direct use of settings possible as no listening is required
-    if (_appStart && Provider.of<Settings>(context, listen: false).startWithAddMeasurementPage) {
-      SchedulerBinding.instance.addPostFrameCallback((_) async {
-        final future = showAddMeasurementDialoge(context, Provider.of<Settings>(context, listen: false));
-        final model = Provider.of<BloodPressureModel>(context, listen: false);
-        final measurement = await future;
-        if (measurement == null) return;
-        model.add(measurement);
-      });
+    if (_appStart) {
+      CentralCallback.init(context);
+      if (Provider.of<Settings>(context, listen: false).startWithAddMeasurementPage) {
+        SchedulerBinding.instance.addPostFrameCallback((_) async {
+          final future = showAddMeasurementDialoge(context, Provider.of<Settings>(context, listen: false));
+          final model = Provider.of<BloodPressureModel>(context, listen: false);
+          final measurement = await future;
+          if (measurement == null) return;
+          model.add(measurement);
+        });
+      }
     }
     _appStart = false;
 
lib/main.dart
@@ -1,6 +1,5 @@
 import 'package:blood_pressure_app/components/consistent_future_builder.dart';
 import 'package:blood_pressure_app/model/blood_pressure.dart';
-import 'package:blood_pressure_app/model/central_callback.dart';
 import 'package:blood_pressure_app/model/storage/db/config_dao.dart';
 import 'package:blood_pressure_app/model/storage/db/config_db.dart';
 import 'package:blood_pressure_app/model/storage/intervall_store.dart';
@@ -56,7 +55,7 @@ Future<Widget> _loadApp() async {
     ChangeNotifierProvider(create: (context) => csvExportSettings),
     ChangeNotifierProvider(create: (context) => pdfExportSettings),
     ChangeNotifierProvider(create: (context) => intervalStorageManager),
-  ], child: AppRoot());
+  ], child: const AppRoot());
 }
 
 class AppRoot extends StatelessWidget {
@@ -94,7 +93,7 @@ class AppRoot extends StatelessWidget {
         ],
         supportedLocales: AppLocalizations.supportedLocales,
         locale: settings.language,
-        home: const CentralCallbackInitializer(child: AppHome()),
+        home: const AppHome(),
       );
     });
   }
test/ui/navigation_test.dart
@@ -2,7 +2,9 @@ import 'package:blood_pressure_app/components/dialoges/add_measurement.dart';
 import 'package:blood_pressure_app/components/dialoges/enter_timeformat.dart';
 import 'package:blood_pressure_app/main.dart';
 import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/export_options.dart';
 import 'package:blood_pressure_app/model/ram_only_implementations.dart';
+import 'package:blood_pressure_app/model/storage/db/config_dao.dart';
 import 'package:blood_pressure_app/model/storage/export_csv_settings_store.dart';
 import 'package:blood_pressure_app/model/storage/export_pdf_settings_store.dart';
 import 'package:blood_pressure_app/model/storage/export_settings_store.dart';
@@ -17,6 +19,7 @@ import 'package:provider/provider.dart';
 void main() {
   group('start page', () {
     testWidgets('should navigate to add measurements page', (widgetTester) async {
+      globalConfigDao = MockConfigDao();
       await pumpAppRoot(widgetTester);
       expect(find.byIcon(Icons.add), findsOneWidget);
       await widgetTester.tap(find.byIcon(Icons.add));
@@ -85,3 +88,36 @@ Future<void> pumpAppRoot(WidgetTester widgetTester, {
     ChangeNotifierProvider<BloodPressureModel>(create: (_) => model!),
   ], child: const AppRoot()));
 }
+
+class MockConfigDao implements ConfigDao {
+  Map<String, ExportColumn> columns = {};
+
+  @override
+  Future<void> deleteExportColumn(String internalName) async => columns.remove(internalName);
+
+  @override
+  Future<CsvExportSettings> loadCsvExportSettings(int profileID) async => CsvExportSettings();
+
+  @override
+  Future<List<ExportColumn>> loadExportColumns() async => columns.values.toList();
+
+  @override
+  Future<ExportSettings> loadExportSettings(int profileID) async => ExportSettings();
+
+  @override
+  Future<IntervallStorage> loadIntervallStorage(int profileID, int storageID) async => IntervallStorage();
+
+  @override
+  Future<PdfExportSettings> loadPdfExportSettings(int profileID) async => PdfExportSettings();
+
+  @override
+  Future<Settings> loadSettings(int profileID) async => Settings();
+
+  @override
+  Future<void> updateExportColumn(ExportColumn exportColumn) async => columns.update(exportColumn.internalName, (value) => exportColumn);
+
+  void reset() {
+    columns = {};
+  }
+
+}