Commit 43d9043

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2024-03-15 16:24:46
test more
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 4845396
Changed files (2)
lib/main.dart
@@ -9,7 +9,6 @@ import 'package:blood_pressure_app/model/storage/db/config_db.dart';
 import 'package:blood_pressure_app/model/storage/intervall_store.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
 import 'package:blood_pressure_app/model/storage/update_legacy_settings.dart';
-import 'package:blood_pressure_app/screens/home_screen.dart';
 import 'package:blood_pressure_app/screens/loading_screen.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@@ -19,6 +18,12 @@ import 'package:path/path.dart';
 import 'package:provider/provider.dart';
 import 'package:sqflite/sqflite.dart';
 
+import 'components/dialoges/import_preview_dialoge.dart';
+import 'model/export_import/csv_converter.dart';
+import 'model/export_import/csv_record_parsing_actor.dart';
+import 'model/storage/export_columns_store.dart';
+import 'model/storage/export_csv_settings_store.dart';
+
 late final ConfigDB _database;
 late final BloodPressureModel _bloodPressureModel;
 
@@ -124,8 +129,19 @@ class AppRoot extends StatelessWidget {
       localizationsDelegates: AppLocalizations.localizationsDelegates,
       supportedLocales: AppLocalizations.supportedLocales,
       locale: settings.language,
-      home: const AppHome(),
-    ),
+      home: ImportPreviewDialoge(
+        bottomAppBar: false,
+        initialActor: CsvRecordParsingActor(
+          CsvConverter(
+            CsvExportSettings(),
+            ExportColumnsManager(),
+          ),
+          'systolic,diastolic,pulse,notes,needlePin\n123,45,67,note1,'
+              '"{""color"":4285132974}"\n114,71,56,,null',
+        ),
+        columnsManager: ExportColumnsManager(),
+      ),
+    )
   );
 
   ThemeData _buildTheme(ColorScheme colorScheme) {
test/ui/components/import_preview_dialoge_test.dart
@@ -1,9 +1,11 @@
+import 'package:blood_pressure_app/components/custom_banner.dart';
 import 'package:blood_pressure_app/components/dialoges/import_preview_dialoge.dart';
 import 'package:blood_pressure_app/model/export_import/csv_converter.dart';
 import 'package:blood_pressure_app/model/export_import/csv_record_parsing_actor.dart';
 import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
 import 'package:blood_pressure_app/model/storage/export_csv_settings_store.dart';
 import 'package:flutter/material.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 import 'util.dart';
@@ -21,11 +23,13 @@ void main() {
         ',123,45,67,note1,"{""color"":4285132974}"\n1703147206000,114,71,56,,null',
       ),
       columnsManager: ExportColumnsManager(),
-    )));
+    ),),);
 
     expect(tester.takeException(), isNull);
     expect(find.byType(DropdownButton), findsNWidgets(6), reason: '6 columns');
     expect(find.text('note1'), findsOneWidget);
+    expect(find.byType(CustomBanner), findsNothing, reason: 'no error');
+
   });
   testWidgets('should limit rows', (tester) async {
     var csvTxt = 'timestampUnixMs,systolic,diastolic,pulse,notes,needlePin';
@@ -43,11 +47,60 @@ void main() {
         csvTxt,
       ),
       columnsManager: ExportColumnsManager(),
-    )));
+    ),),);
 
     expect(find.text('row-content'), findsNWidgets(30));
     await tester.dragFrom(Offset(10, tester.view.physicalSize.height), Offset(0, -(tester.view.physicalSize.height)));
     await tester.pumpAndSettle();
     expect(find.text('…'), findsAtLeast(1));
   });
+  testWidgets('should show error banner', (tester) async {
+    await tester.pumpWidget(materialApp(ImportPreviewDialoge(
+      bottomAppBar: false,
+      initialActor: CsvRecordParsingActor(
+        CsvConverter(
+          CsvExportSettings(),
+          ExportColumnsManager(),
+        ),
+        'systolic,diastolic,pulse,notes,needlePin\n123,45,67,note1,'
+            '"{""color"":4285132974}"\n114,71,56,,null',
+      ),
+      columnsManager: ExportColumnsManager(),
+    ),),);
+    await tester.pumpAndSettle();
+
+    expect(find.byType(CustomBanner), findsOneWidget);
+    final localizations = await AppLocalizations.delegate.load(const Locale('en'));
+    expect(find.text(localizations.errParseTimeNotRestoreable), findsOneWidget);
+  });
+  testWidgets('should have multiple lines', (tester) async {
+    await tester.pumpWidget(materialApp(ImportPreviewDialoge(
+      bottomAppBar: false,
+      initialActor: CsvRecordParsingActor(
+        CsvConverter(
+          CsvExportSettings(),
+          ExportColumnsManager(),
+        ),
+        'line1\nline2\nline3',
+      ),
+      columnsManager: ExportColumnsManager(),
+    ),),);
+
+    expect(find.byType(CheckboxMenuButton), findsOneWidget);
+    expect(tester.getSemantics(find.byType(Checkbox)), containsSemantics(
+      isChecked: true,
+    ),);
+    expect(find.text('line1'), findsNothing);
+    expect(find.text('line2'), findsOneWidget);
+    expect(find.text('line3'), findsOneWidget);
+
+    await tester.tap(find.byType(CheckboxMenuButton));
+    await tester.pumpAndSettle();
+    expect(tester.getSemantics(find.byType(Checkbox)), containsSemantics(
+      isChecked: false,
+    ),);
+    expect(find.text('line1'), findsOneWidget);
+    expect(find.text('line2'), findsOneWidget);
+    expect(find.text('line3'), findsOneWidget);
+  });
 }