Commit 8170c70

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-11-06 15:12:06
test TitledColumn
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 1036ae6
Changed files (1)
test
ui
components
test/ui/components/settings/titled_column_test.dart
@@ -0,0 +1,53 @@
+import 'package:blood_pressure_app/components/settings/settings_widgets.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:flutter_test/flutter_test.dart';
+
+void main() {
+  group('TitledColumn', () {
+    testWidgets('should show title and widgets', (widgetTester) async {
+      await widgetTester.pumpWidget(_materialApp(TitledColumn(
+        title: const Text('test title'),
+        children: [
+          const ListTile(title: Text('ListTile text 1'),),
+          SwitchListTile(
+              title: const Text('SwitchListTile text'),
+              value: true, onChanged: (v) {}),
+          const ListTile(title: Text('ListTile text 2'),),
+        ],
+      )));
+
+      expect(find.text('test title'), findsOneWidget);
+      expect(find.text('ListTile text 1'), findsOneWidget);
+      expect(find.text('SwitchListTile text'), findsOneWidget);
+      expect(find.text('ListTile text 2'), findsOneWidget);
+    });
+    testWidgets('should show title first', (widgetTester) async {
+      await widgetTester.pumpWidget(_materialApp(TitledColumn(
+        title: const Text('test title'),
+        children: [
+          const ListTile(title: Text('ListTile text 1'),),
+          SwitchListTile(
+              title: const Text('SwitchListTile text'),
+              value: true, onChanged: (v) {}),
+          const ListTile(title: Text('ListTile text 2'),),
+        ],
+      )));
+
+      expect(find.byType(Column), findsOneWidget);
+      expect(find.descendant(
+          of: find.byType(Column).first,
+          matching: find.text('test title')),
+        findsOneWidget
+      );
+    });
+  });
+}
+
+Widget _materialApp(Widget child) {
+  return MaterialApp(
+    localizationsDelegates: const [AppLocalizations.delegate,],
+    locale: const Locale('en'),
+    home: Scaffold(body:child),
+  );
+}
\ No newline at end of file