Sfoglia il codice sorgente

feat: simple test of status bar

Fela Maslen 4 anni fa
parent
commit
f6cf83e2e2

+ 13 - 2
gmus-mobile/lib/components/status.dart

@@ -3,8 +3,11 @@ import 'package:get/get.dart';
 
 import '../controller.dart';
 
-class StatusBar extends StatelessWidget {
-  final Controller controller = Get.find();
+class StatusBarWrapped extends StatelessWidget {
+  final Controller controller;
+  StatusBarWrapped({
+    @required this.controller,
+  });
   @override
   Widget build(BuildContext context) {
     return Obx(() {
@@ -19,3 +22,11 @@ class StatusBar extends StatelessWidget {
     });
   }
 }
+
+class StatusBar extends StatelessWidget {
+  final Controller controller = Get.find();
+  @override
+  Widget build(BuildContext context) {
+    return StatusBarWrapped(controller: this.controller);
+  }
+}

+ 41 - 0
gmus-mobile/test/components/status_test.dart

@@ -0,0 +1,41 @@
+import 'package:flutter/widgets.dart';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:get/get.dart';
+
+import 'package:gmus_mobile/components/status.dart';
+import 'package:gmus_mobile/controller.dart';
+
+class TestStatusBar extends StatelessWidget {
+  final Controller controller;
+  TestStatusBar({
+    @required this.controller,
+  });
+
+  @override
+  Widget build(BuildContext context) {
+    Get.put(this.controller);
+
+    return Directionality(
+      textDirection: TextDirection.ltr,
+      child: StatusBarWrapped(controller: this.controller),
+    );
+  }
+}
+
+void main() {
+  testWidgets('Status bar should render a disconnected message', (WidgetTester tester) async {
+    await tester.pumpWidget(TestStatusBar(controller: Controller()));
+
+    expect(find.text('Disconnected'), findsOneWidget);
+  });
+
+  testWidgets('Status bar should render a connected message with name', (WidgetTester tester) async {
+    Controller controller = Controller();
+    controller.setUniqueName('mob-DvaU1');
+
+    await tester.pumpWidget(TestStatusBar(controller: controller));
+
+    expect(find.textContaining('Connected'), findsOneWidget);
+    expect(find.textContaining('mob-DvaU1'), findsOneWidget);
+  });
+}

+ 0 - 30
gmus-mobile/test/widget_test.dart

@@ -1,30 +0,0 @@
-// This is a basic Flutter widget test.
-//
-// To perform an interaction with a widget in your test, use the WidgetTester
-// utility that Flutter provides. For example, you can send tap and scroll
-// gestures. You can also use WidgetTester to find child widgets in the widget
-// tree, read text, and verify that the values of widget properties are correct.
-
-import 'package:flutter/material.dart';
-import 'package:flutter_test/flutter_test.dart';
-
-import 'package:gmus_mobile/main.dart';
-
-void main() {
-  testWidgets('Counter increments smoke test', (WidgetTester tester) async {
-    // Build our app and trigger a frame.
-    await tester.pumpWidget(MyApp());
-
-    // Verify that our counter starts at 0.
-    expect(find.text('0'), findsOneWidget);
-    expect(find.text('1'), findsNothing);
-
-    // Tap the '+' icon and trigger a frame.
-    await tester.tap(find.byIcon(Icons.add));
-    await tester.pump();
-
-    // Verify that our counter has incremented.
-    expect(find.text('0'), findsNothing);
-    expect(find.text('1'), findsOneWidget);
-  });
-}