diff --git a/lib/page/dashboard/dashboard.dart b/lib/page/dashboard/dashboard.dart
index c4fa8a122e989bb03fda052269681783b0e561a5..871230578c3b792f449d4a44eeb7e6032e19db96 100644
--- a/lib/page/dashboard/dashboard.dart
+++ b/lib/page/dashboard/dashboard.dart
@@ -62,11 +62,12 @@ class DashboardState extends State<Dashboard> {
     }
   }
 
-  void _navigateToPencarianPage(BuildContext context) {
+    void _navigateToPencarianPage(BuildContext context) {
     final route = MaterialPageRoute(builder: (_) => Pencarian());
     Navigator.of(context).push(route);
   }
 
+  static const textFieldKey = Key('Text Field Mau Kemana');
   @override
   Widget build(BuildContext context) {
     return Scaffold(
diff --git a/test/navigation_test.dart b/test/navigation_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..5efeb5a7adad639a471953e152104d448aaab716
--- /dev/null
+++ b/test/navigation_test.dart
@@ -0,0 +1,64 @@
+import 'package:flutter/material.dart';
+import 'package:mockito/mockito.dart';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:ppl_disabilitas/page/dashboard/dashboard.dart';
+
+
+class MockNavigatorObserver extends Mock implements NavigatorObserver {}
+
+void main() {
+  group('Dashboard navigation tests', () {
+    NavigatorObserver mockObserver;
+
+    setUp(() {
+      mockObserver = MockNavigatorObserver();
+    });
+
+    Future<Null> _buildDashboardPage(WidgetTester tester) async {
+      await tester.pumpWidget(MaterialApp(
+        home: Dashboard(),
+        
+        /// This mocked observer will now receive all navigation events
+        /// that happen in our app.
+        navigatorObservers: [mockObserver],
+      ));
+
+      /// The tester.pumpWidget() call above just built our app widget
+      /// and triggered the pushObserver method on the mockObserver once.
+      verify(mockObserver.didPush(any, any));
+    }
+
+    Future<Null> _navigateToPencarianPage(WidgetTester tester) async {
+      final textFieldKey = Key("Text Field Mau Kemana");
+      await tester.tap(find.byKey(textFieldKey));
+      await tester.pumpAndSettle();
+    }
+
+    testWidgets(
+        'when tapping text form field, should navigate to pencarina page',
+        (WidgetTester tester) async {
+          final textFieldKeyPencarian = Key("Text Field Mau Kemana");
+          await _buildDashboardPage(tester);
+          await _navigateToPencarianPage(tester);
+          verify(mockObserver.didPush(any, any));
+          expect(find.byKey(textFieldKeyPencarian), findsOneWidget);
+      
+    });
+
+    testWidgets('tapping the back button should navigate back to the dashboard',
+        (WidgetTester tester) async {
+          final backIconKey = Key("Back Icon Key");
+          await _buildDashboardPage(tester);
+          await _navigateToPencarianPage(tester);
+          final Route pushedRoute =verify(mockObserver.didPush(captureAny, any)).captured.single;
+          String popResult;
+          pushedRoute.popped.then((result) => popResult = result);
+          await tester.tap(find.byKey(backIconKey));
+          await tester.pumpAndSettle();
+          expect(popResult, 'Take me back');
+
+
+
+    });
+  });
+}
\ No newline at end of file