diff --git a/team_b/yappy/lib/transcription_box.dart b/team_b/yappy/lib/transcription_box.dart index e2a59642..94cbbfdb 100644 --- a/team_b/yappy/lib/transcription_box.dart +++ b/team_b/yappy/lib/transcription_box.dart @@ -62,7 +62,7 @@ class TranscriptionBoxState extends State { maxLines: null, readOnly: true, decoration: InputDecoration( - hintText: "", + hintText: "Transcription will appear here...", hintStyle: TextStyle(color:Colors.white), border: InputBorder.none, contentPadding: EdgeInsets.all(10), diff --git a/team_b/yappy/test/contact_page_test.dart b/team_b/yappy/test/contact_page_test.dart index c82f1c83..280fbc7c 100644 --- a/team_b/yappy/test/contact_page_test.dart +++ b/team_b/yappy/test/contact_page_test.dart @@ -1,14 +1,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; import 'package:yappy/contact_page.dart'; import 'package:yappy/tool_bar.dart'; +import 'package:yappy/theme_provider.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); + testWidgets('ContactPage should have a ToolBar and HamburgerDrawer', (WidgetTester tester) async { - // Build the widget - await tester.pumpWidget(MaterialApp(home: ContactPage())); + // Build the widget with a ThemeProvider + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: ContactPage()), + ), + ); // Verify that ToolBar is in place expect(find.byType(ToolBar), findsOneWidget, @@ -30,7 +38,13 @@ void main() { testWidgets('Tapping the menu button should open the drawer', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: ContactPage())); + // Build the widget with a ThemeProvider + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: ContactPage()), + ), + ); // Drawer should not be visible initially expect(find.byType(Drawer), findsNothing); @@ -42,4 +56,4 @@ void main() { // Drawer should be visible now expect(find.byType(Drawer), findsOneWidget); }); -} +} \ No newline at end of file diff --git a/team_b/yappy/test/help_test.dart b/team_b/yappy/test/help_test.dart index 58e3907b..558a0a2e 100644 --- a/team_b/yappy/test/help_test.dart +++ b/team_b/yappy/test/help_test.dart @@ -1,36 +1,34 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; import 'package:yappy/help.dart'; import 'package:yappy/tutorial_page.dart'; +import 'package:yappy/theme_provider.dart'; void main() { group('HelpApp Widget Tests', () { testWidgets('HelpApp renders HelpPage as the home screen', (WidgetTester tester) async { - await tester.pumpWidget(const HelpApp()); - - expect(find.byType(HelpPage), findsOneWidget); - }); - }); - - group('HelpPage Widget Tests', () { - testWidgets('HelpPage has the correct background color', - (WidgetTester tester) async { + // Build the widget with a ThemeProvider await tester.pumpWidget( - const MaterialApp( - home: HelpPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HelpApp()), ), ); - final scaffold = tester.widget(find.byType(Scaffold)); - expect(scaffold.backgroundColor, const Color.fromARGB(255, 0, 0, 0)); + expect(find.byType(HelpPage), findsOneWidget); }); + }); + group('HelpPage Widget Tests', () { testWidgets('HelpPage displays the "Lets Yap about Yappy" title', (WidgetTester tester) async { + // Build the widget with a ThemeProvider await tester.pumpWidget( - const MaterialApp( - home: HelpPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HelpPage()), ), ); @@ -39,9 +37,11 @@ void main() { testWidgets('HelpPage displays the welcome message', (WidgetTester tester) async { + // Build the widget with a ThemeProvider await tester.pumpWidget( - const MaterialApp( - home: HelpPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HelpPage()), ), ); @@ -56,9 +56,11 @@ void main() { testWidgets( 'HelpPage displays "It\'s my first time" button and navigates to TutorialPage', (WidgetTester tester) async { + // Build the widget with a ThemeProvider await tester.pumpWidget( - const MaterialApp( - home: HelpPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HelpPage()), ), ); @@ -73,9 +75,11 @@ void main() { testWidgets( 'HelpPage displays "Report a problem" button and shows alert dialog', (WidgetTester tester) async { + // Build the widget with a ThemeProvider await tester.pumpWidget( - const MaterialApp( - home: HelpPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HelpPage()), ), ); @@ -91,18 +95,25 @@ void main() { testWidgets( 'HelpPage displays "Feedback for the Help Center" button and shows alert dialog', (WidgetTester tester) async { + // Build the widget with a ThemeProvider await tester.pumpWidget( - const MaterialApp( - home: HelpPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HelpPage()), ), ); - expect(find.text('Feedback for the Help Center'), findsOneWidget); + final buttonFinder = find.text('Feedback for the Help Center'); + + await tester.ensureVisible(buttonFinder); + await tester.pumpAndSettle(); + + expect(buttonFinder, findsOneWidget); - await tester.tap(find.text('Feedback for the Help Center')); + await tester.tap(buttonFinder); await tester.pump(); - expect(find.text('Feedback for the Help Center'), findsNWidgets(2)); + expect(buttonFinder, findsNWidgets(2)); }); }); } diff --git a/team_b/yappy/test/home_page_test.dart b/team_b/yappy/test/home_page_test.dart index 62b9fbe6..3527114f 100644 --- a/team_b/yappy/test/home_page_test.dart +++ b/team_b/yappy/test/home_page_test.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; import 'package:yappy/home_page.dart'; +import 'package:yappy/theme_provider.dart'; import 'package:yappy/tutorial_page.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -9,8 +11,13 @@ void main() { group('HomePage Tests', () { testWidgets('displays all buttons on the HomePage', (WidgetTester tester) async { - // Arrange - await tester.pumpWidget(MaterialApp(home: HomePage())); + // Build the widget with a ThemeProvider + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HomePage()), + ), + ); // Assert expect(find.text('Restaurant'), findsOneWidget); @@ -26,7 +33,12 @@ void main() { (WidgetTester tester) async { // Arrange SharedPreferences.setMockInitialValues({'isFirstTime': true}); - await tester.pumpWidget(MaterialApp(home: HomePage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HomePage()), + ), + ); // Act await tester.pump(); @@ -42,7 +54,12 @@ void main() { (WidgetTester tester) async { // Arrange SharedPreferences.setMockInitialValues({'isFirstTime': false}); - await tester.pumpWidget(MaterialApp(home: HomePage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: HomePage()), + ), + ); // Assert expect(find.text('Welcome!'), findsNothing); diff --git a/team_b/yappy/test/main_test.dart b/team_b/yappy/test/main_test.dart index b4329ed9..bd9225e2 100644 --- a/team_b/yappy/test/main_test.dart +++ b/team_b/yappy/test/main_test.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:yappy/main.dart'; import 'package:yappy/home_page.dart'; +import 'package:yappy/theme_provider.dart'; void main() { group('Main Tests', () { @@ -10,7 +12,12 @@ void main() { (WidgetTester tester) async { // Arrange SharedPreferences.setMockInitialValues({}); // Mock shared preferences - await tester.pumpWidget(const MyApp()); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MyApp()), + ), + ); // Assert expect(find.byType(MyApp), findsOneWidget); diff --git a/team_b/yappy/test/mechanic_test.dart b/team_b/yappy/test/mechanic_test.dart index 03f424d4..91dda926 100644 --- a/team_b/yappy/test/mechanic_test.dart +++ b/team_b/yappy/test/mechanic_test.dart @@ -1,34 +1,56 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; import 'package:yappy/audiowave_widget.dart'; import 'package:yappy/industry_menu.dart'; import 'package:yappy/mechanic.dart'; import 'package:yappy/search_bar_widget.dart'; +import 'package:yappy/theme_provider.dart'; import 'package:yappy/tool_bar.dart'; import 'package:yappy/transcription_box.dart'; void main() { testWidgets('MechanicalAidApp should have a MechanicalAidPage', (WidgetTester tester) async { - await tester.pumpWidget(const MechanicalAidApp()); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MechanicalAidApp()), + ), + ); expect(find.byType(MechanicalAidPage), findsOneWidget); }); testWidgets('MechanicalAidPage should have a ToolBar', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: MechanicalAidPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MechanicalAidPage()), + ), + ); expect(find.byType(ToolBar), findsOneWidget); }); testWidgets('MechanicalAidPage should have a SearchBarWidget and IndustryMenu', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: MechanicalAidPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MechanicalAidPage()), + ), + ); expect(find.byType(SearchBarWidget), findsOneWidget); expect(find.byType(IndustryMenu), findsOneWidget); }); testWidgets('MechanicalAidPage should have AudiowaveWidget and TranscriptionBox', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: MechanicalAidPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MechanicalAidPage()), + ), + ); expect(find.byType(AudiowaveWidget), findsOneWidget); expect(find.byType(TranscriptionBox), findsOneWidget); diff --git a/team_b/yappy/test/medical_doctor_test.dart b/team_b/yappy/test/medical_doctor_test.dart index 53eef6c8..897b3223 100644 --- a/team_b/yappy/test/medical_doctor_test.dart +++ b/team_b/yappy/test/medical_doctor_test.dart @@ -1,7 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; import 'package:yappy/medical_doctor.dart'; import 'package:yappy/industry_menu.dart'; +import 'package:yappy/theme_provider.dart'; import 'package:yappy/transcription_box.dart'; import 'package:yappy/audiowave_widget.dart'; @@ -10,7 +12,12 @@ void main() { testWidgets('renders MedicalDoctorApp and MedicalDoctorPage correctly', (WidgetTester tester) async { // Arrange - await tester.pumpWidget(const MedicalDoctorApp()); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MedicalDoctorApp()), + ), + ); // Assert expect(find.byType(MedicalDoctorApp), findsOneWidget); @@ -20,7 +27,12 @@ void main() { testWidgets('renders IndustryMenu with correct title and icon', (WidgetTester tester) async { // Arrange - await tester.pumpWidget(MaterialApp(home: MedicalDoctorPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MedicalDoctorPage()), + ), + ); // Act await tester.pumpAndSettle(); @@ -35,7 +47,12 @@ void main() { testWidgets('renders AudiowaveWidget and TranscriptionBox', (WidgetTester tester) async { // Arrange - await tester.pumpWidget(MaterialApp(home: MedicalDoctorPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MedicalDoctorPage()), + ), + ); // Act await tester.pumpAndSettle(); diff --git a/team_b/yappy/test/medical_patient_test.dart b/team_b/yappy/test/medical_patient_test.dart index 24d32b77..c6fed79f 100644 --- a/team_b/yappy/test/medical_patient_test.dart +++ b/team_b/yappy/test/medical_patient_test.dart @@ -1,34 +1,56 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; import 'package:yappy/audiowave_widget.dart'; import 'package:yappy/industry_menu.dart'; import 'package:yappy/medical_patient.dart'; import 'package:yappy/search_bar_widget.dart'; +import 'package:yappy/theme_provider.dart'; import 'package:yappy/tool_bar.dart'; import 'package:yappy/transcription_box.dart'; void main() { testWidgets('MedicalPatientApp should have a MedicalPatientPage', (WidgetTester tester) async { - await tester.pumpWidget(const MedicalPatientApp()); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MedicalPatientApp()), + ), + ); expect(find.byType(MedicalPatientPage), findsOneWidget); }); testWidgets('MedicalPatientPage should have a ToolBar', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: MedicalPatientPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MedicalPatientPage()), + ), + ); expect(find.byType(ToolBar), findsOneWidget); }); testWidgets('MedicalPatientPage should have a SearchBarWidget and IndustryMenu', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: MedicalPatientPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MedicalPatientPage()), + ), + ); expect(find.byType(SearchBarWidget), findsOneWidget); expect(find.byType(IndustryMenu), findsOneWidget); }); testWidgets('MedicalPatientPage should have AudiowaveWidget and TranscriptionBox', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: MedicalPatientPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: MedicalPatientPage()), + ), + ); expect(find.byType(AudiowaveWidget), findsOneWidget); expect(find.byType(TranscriptionBox), findsOneWidget); diff --git a/team_b/yappy/test/restaurant_test.dart b/team_b/yappy/test/restaurant_test.dart index c5a1b527..63795fc3 100644 --- a/team_b/yappy/test/restaurant_test.dart +++ b/team_b/yappy/test/restaurant_test.dart @@ -1,34 +1,56 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; import 'package:yappy/audiowave_widget.dart'; import 'package:yappy/industry_menu.dart'; import 'package:yappy/restaurant.dart'; import 'package:yappy/search_bar_widget.dart'; +import 'package:yappy/theme_provider.dart'; import 'package:yappy/tool_bar.dart'; import 'package:yappy/transcription_box.dart'; void main() { testWidgets('RestaurantApp should have a RestaurantPage', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: RestaurantPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: RestaurantPage()), + ), + ); expect(find.byType(RestaurantPage), findsOneWidget); }); testWidgets('RestaurantPage should have a ToolBar', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: RestaurantPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: RestaurantPage()), + ), + ); expect(find.byType(ToolBar), findsOneWidget); }); testWidgets('RestaurantPage should have a SearchBarWidget and IndustryMenu', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: RestaurantPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: RestaurantPage()), + ), + ); expect(find.byType(SearchBarWidget), findsOneWidget); expect(find.byType(IndustryMenu), findsOneWidget); }); testWidgets('RestaurantPage should have AudiowaveWidget and TranscriptionBox', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: RestaurantPage())); + await tester.pumpWidget( + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: RestaurantPage()), + ), + ); expect(find.byType(AudiowaveWidget), findsOneWidget); expect(find.byType(TranscriptionBox), findsOneWidget); diff --git a/team_b/yappy/test/transcription_box_test.dart b/team_b/yappy/test/transcription_box_test.dart index e655d4de..53d67eff 100644 --- a/team_b/yappy/test/transcription_box_test.dart +++ b/team_b/yappy/test/transcription_box_test.dart @@ -1,5 +1,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:yappy/theme_provider.dart'; import 'package:yappy/transcription_box.dart'; void main() { @@ -13,9 +15,11 @@ void main() { testWidgets('Should display the transcription box', (WidgetTester tester) async { await tester.pumpWidget( - MaterialApp( - home: Scaffold( - body: TranscriptionBox(controller: textEditingController), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: Scaffold( + body: TranscriptionBox(controller: textEditingController), + ), ), ), ); @@ -28,9 +32,11 @@ void main() { testWidgets('Should update text in transcription box', (WidgetTester tester) async { await tester.pumpWidget( - MaterialApp( - home: Scaffold( - body: TranscriptionBox(controller: textEditingController), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: Scaffold( + body: TranscriptionBox(controller: textEditingController), + ), ), ), ); @@ -46,9 +52,11 @@ void main() { testWidgets('Should display scroll bar when content overflows', (WidgetTester tester) async { await tester.pumpWidget( - MaterialApp( - home: Scaffold( - body: TranscriptionBox(controller: textEditingController), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: Scaffold( + body: TranscriptionBox(controller: textEditingController), + ), ), ), ); diff --git a/team_b/yappy/test/tutorial_page_test.dart b/team_b/yappy/test/tutorial_page_test.dart index af142a20..e21913fe 100644 --- a/team_b/yappy/test/tutorial_page_test.dart +++ b/team_b/yappy/test/tutorial_page_test.dart @@ -1,5 +1,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:yappy/theme_provider.dart'; import 'package:yappy/tool_bar.dart'; import 'package:yappy/industry_menu.dart'; import 'package:yappy/transcription_box.dart'; @@ -11,8 +13,9 @@ void main() { testWidgets('Should display ToolBar and Drawer', (WidgetTester tester) async { await tester.pumpWidget( - MaterialApp( - home: TutorialPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: TutorialPage()), ), ); @@ -29,8 +32,9 @@ void main() { testWidgets('Should show first tutorial popup on load', (WidgetTester tester) async { await tester.pumpWidget( - MaterialApp( - home: TutorialPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: TutorialPage()), ), ); @@ -48,8 +52,9 @@ void main() { testWidgets('Should navigate through tutorial popups', (WidgetTester tester) async { await tester.pumpWidget( - MaterialApp( - home: TutorialPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: TutorialPage()), ), ); @@ -95,8 +100,9 @@ void main() { testWidgets('Should display IndustryMenu and TranscriptionBox', (WidgetTester tester) async { await tester.pumpWidget( - MaterialApp( - home: TutorialPage(), + ChangeNotifierProvider( + create: (_) => ThemeProvider(), + child: MaterialApp(home: TutorialPage()), ), );