diff --git a/app/test/grades/pages/term_settings_page/term_settings_page_test.dart b/app/test/grades/pages/term_settings_page/term_settings_page_test.dart new file mode 100644 index 000000000..ac0745199 --- /dev/null +++ b/app/test/grades/pages/term_settings_page/term_settings_page_test.dart @@ -0,0 +1,47 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:mockito/mockito.dart'; +import 'package:provider/provider.dart'; +import 'package:sharezone/grades/grades_service/grades_service.dart'; +import 'package:sharezone/grades/pages/term_settings_page/term_settings_page.dart'; +import 'package:sharezone/grades/pages/term_settings_page/term_settings_page_controller.dart'; +import 'package:sharezone/grades/pages/term_settings_page/term_settings_page_controller_factory.dart'; + +import '../../../../test_goldens/grades/pages/term_settings_page/term_settings_page_test.mocks.dart'; +import '../../../homework/homework_dialog_test.dart'; + +void main() { + group('$TermSettingsPage', () { + const termId = TermId('term-1'); + + late TermSettingsPageController controller; + late TermSettingsPageControllerFactory controllerFactory; + + setUp(() { + controller = MockTermSettingsPageController(); + controllerFactory = MockTermSettingsPageControllerFactory(); + when(controllerFactory.create(termId)).thenReturn(controller); + }); + + Future pumpTermSettingsPage(WidgetTester tester) async { + await tester.pumpWidget( + MultiProvider( + providers: [ + Provider( + create: (_) => GradesService(), + ), + Provider.value( + value: controllerFactory, + ), + ], + child: const TermSettingsPage(termId: termId), + ), + ); + } + + testWidgets( + 'if $WeightDisplayType is ${WeightDisplayType.factor} the factor dialog will be shown when tapping subject weight', + (tester) async { + await pumpTermSettingsPage(tester); + }); + }); +} diff --git a/app/test_goldens/grades/pages/term_settings_page/term_settings_page_test.dart b/app/test_goldens/grades/pages/term_settings_page/term_settings_page_test.dart index 2409a6f25..94bed7ef2 100644 --- a/app/test_goldens/grades/pages/term_settings_page/term_settings_page_test.dart +++ b/app/test_goldens/grades/pages/term_settings_page/term_settings_page_test.dart @@ -135,17 +135,20 @@ void main() { Future pushTermSettingsPage( WidgetTester tester, ThemeData theme) async { await tester.pumpWidgetBuilder( - MultiProvider(providers: [ - Provider( - create: (_) => GradesService(), - ), - Provider.value( - value: controllerFactory, - ), - ChangeNotifierProvider.value( - value: controller, - ), - ], child: const TermSettingsPage(termId: termId)), + MultiProvider( + providers: [ + Provider( + create: (_) => GradesService(), + ), + Provider.value( + value: controllerFactory, + ), + ChangeNotifierProvider.value( + value: controller, + ), + ], + child: const TermSettingsPage(termId: termId), + ), wrapper: materialAppWrapper(theme: theme), ); }