From 16e71c4bf7764370bb47fa4dcd82f65a0dc2bf05 Mon Sep 17 00:00:00 2001 From: BicaniWolfie Date: Wed, 6 Dec 2023 11:24:19 +0100 Subject: [PATCH] Fixed Errors with merge --- test/blocs/activity_bloc_test.dart | 2 +- test/blocs/auth_bloc.test.dart | 53 +++------- test/blocs/copy_resolve_bloc_test.dart | 4 +- test/blocs/edit_weekplan_bloc_test.dart | 6 +- test/blocs/new_citizen_bloc_test.dart | 8 +- test/blocs/new_weekplan_bloc_test.dart | 14 +-- test/blocs/pictogram_bloc_test.dart | 9 +- test/blocs/weekplans_bloc_test.dart | 102 ++++++-------------- test/screens/weekplan_screen_test.dart | 6 +- test/widgets/giraf_app_bar_widget_test.dart | 15 +-- test/widgets/pictogram_image_test.dart | 14 ++- 11 files changed, 70 insertions(+), 163 deletions(-) diff --git a/test/blocs/activity_bloc_test.dart b/test/blocs/activity_bloc_test.dart index 6c88d84ed..c67d3dada 100644 --- a/test/blocs/activity_bloc_test.dart +++ b/test/blocs/activity_bloc_test.dart @@ -57,7 +57,7 @@ void main() { mockWeekModel.weekNumber, mockWeekModel)) .thenAnswer( (_) => rx_dart.BehaviorSubject.seeded(mockWeekModel)); - when(activityApi.update(mockActivity, mockUser.id)).thenAnswer( + when(() => activityApi.update(mockActivity, mockUser.id!)).thenAnswer( (_) => rx_dart.BehaviorSubject.seeded(mockActivity)); } diff --git a/test/blocs/auth_bloc.test.dart b/test/blocs/auth_bloc.test.dart index c2b8920d5..4c1948161 100644 --- a/test/blocs/auth_bloc.test.dart +++ b/test/blocs/auth_bloc.test.dart @@ -9,7 +9,6 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; import 'package:weekplanner/blocs/auth_bloc.dart'; import 'package:weekplanner/models/enums/weekplan_mode.dart'; -import 'package:api_client/models/giraf_user_model.dart'; ///A mock of the account api to use in the tests class MockAccountApi extends Mock implements AccountApi { @@ -35,38 +34,7 @@ class MockUserApi extends Mock implements UserApi { throw Exception; } - - @override - ///Mocks the me function, otherwise it will be null - Stream me() { - ///Setting up the "me()" stream variables depending on the different users - Role userRole; - String userRoleName; - String displayAndUsername; - if(user.compareTo('Graatand') == 0) { userRole = Role.Guardian; - displayAndUsername = 'Graatand'; - userRoleName = 'Guardian';} - else if(user.compareTo('Chris') == 0) { userRole = Role.Trustee; - displayAndUsername = 'Chris'; - userRoleName = 'Trustee';} - else if(user.compareTo('Janne') == 0) { userRole = Role.Citizen; - displayAndUsername = 'Janne'; - userRoleName = 'Citizen';} - - ///Assigning the stream based on the if-else chain above - return Stream.value(GirafUserModel( - id: '1', - department: 3, - role: userRole, - roleName: userRoleName, - displayName: displayAndUsername, - username: displayAndUsername), - ); - } } -///Making an instance of the MockUserApi class, so that the "user" variable -///can be changed making it possible to change the stream within the "me()" function. -MockUserApi mockUserApi = new MockUserApi(); void main() { late Api _api; @@ -76,7 +44,7 @@ void main() { _api = Api('any'); authBloc = AuthBloc(_api); _api.account = MockAccountApi(); - _api.user = mockUserApi; + _api.user = MockUserApi(); }); test('Check if the mode defaults to guardian', async((DoneFn done) { @@ -115,30 +83,31 @@ void main() { authBloc.setMode(WeekplanMode.trustee); })); - test('Should check that authenticate works (Guardian)', async((DoneFn done) { - //mockUserApi.user = 'Graatand'; + const String username = 'Graatand'; + const String password = 'password'; + test('Should check that authenticate works', async((DoneFn done) { authBloc.mode.skip(1).listen((WeekplanMode mode) { expect(mode, WeekplanMode.guardian); done(); }); - authBloc.authenticate(mockUserApi.user, mockUserApi.password); + authBloc.authenticate(username, password); })); - test('Should check that authenticate works (Trustee)', async((DoneFn done) { - mockUserApi.user = 'Chris'; + const String username2 = 'Chris'; + test('Should check that authenticate works', async((DoneFn done) { authBloc.mode.skip(1).listen((WeekplanMode mode) { expect(mode, WeekplanMode.trustee); done(); }); - authBloc.authenticate(mockUserApi.user, mockUserApi.password); + authBloc.authenticate(username2, password); })); - test('Should check that authenticate works (Citizen)', async((DoneFn done) { - mockUserApi.user = 'Janne'; + const String username3 = 'Janne'; + test('Should check that authenticate works', async((DoneFn done) { authBloc.mode.skip(1).listen((WeekplanMode mode) { expect(mode, WeekplanMode.citizen); done(); }); - authBloc.authenticate(mockUserApi.user, mockUserApi.password); + authBloc.authenticate(username3, password); })); } diff --git a/test/blocs/copy_resolve_bloc_test.dart b/test/blocs/copy_resolve_bloc_test.dart index 62e89dbc0..aac89d3d4 100644 --- a/test/blocs/copy_resolve_bloc_test.dart +++ b/test/blocs/copy_resolve_bloc_test.dart @@ -8,8 +8,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:weekplanner/blocs/copy_resolve_bloc.dart'; void main() { - CopyResolveBloc bloc; - Api api; + Api api = Api('any'); + CopyResolveBloc bloc = CopyResolveBloc(api); final WeekModel oldWeekmodel = WeekModel( thumbnail: PictogramModel(title: 'title', accessLevel: AccessLevel.PRIVATE), diff --git a/test/blocs/edit_weekplan_bloc_test.dart b/test/blocs/edit_weekplan_bloc_test.dart index a6aba4506..db0d322ca 100644 --- a/test/blocs/edit_weekplan_bloc_test.dart +++ b/test/blocs/edit_weekplan_bloc_test.dart @@ -17,9 +17,9 @@ class MockWeekApi extends Mock implements WeekApi {} //test functionality for editing a weekplan bloc void main() { - EditWeekplanBloc bloc; - WeekplansBloc mockWeekplanSelector; - Api api; + Api api = Api('any'); + EditWeekplanBloc bloc = EditWeekplanBloc(api); + WeekplansBloc mockWeekplanSelector = WeekplansBloc(api); //Create mockup pictogram final PictogramModel mockThumbnail = PictogramModel( id: 1, diff --git a/test/blocs/new_citizen_bloc_test.dart b/test/blocs/new_citizen_bloc_test.dart index 9c6e0db1d..e3ca2977c 100644 --- a/test/blocs/new_citizen_bloc_test.dart +++ b/test/blocs/new_citizen_bloc_test.dart @@ -49,10 +49,10 @@ void main() { bloc = NewCitizenBloc(api); bloc.initialize(); - //sets api calls to return correct user data - when(api.account.register(any, any, any, any, - departmentId: anyNamed('departmentId'), role: anyNamed('role'))) - .thenAnswer((_) { + //sets api calls to return correct user data + when(() => api.account.register(any(), any(), any(), any(), + departmentId: any(named: 'departmentId'), + role: any(named: 'role'))).thenAnswer((_) { return Stream.value(user); }); }); diff --git a/test/blocs/new_weekplan_bloc_test.dart b/test/blocs/new_weekplan_bloc_test.dart index 5ed67458f..d30c0fa06 100644 --- a/test/blocs/new_weekplan_bloc_test.dart +++ b/test/blocs/new_weekplan_bloc_test.dart @@ -14,17 +14,16 @@ import 'package:weekplanner/di.dart'; class MockWeekApi extends Mock implements WeekApi {} +class MockWeekModel extends Fake implements WeekModel {} + //tests for various functions related to creating new weekplans void main() { - NewWeekplanBloc bloc; - Api api; - - class MockWeekModel extends Fake implements WeekModel {} - setUpAll(() { registerFallbackValue(MockWeekModel()); }); + Api api = Api('baseUrl'); + NewWeekplanBloc bloc = NewWeekplanBloc(api); //create a mock week for use in the tests final PictogramModel mockThumbnail = PictogramModel( id: 1, @@ -47,8 +46,9 @@ void main() { setUp(() { api = Api('baseUrl'); api.week = MockWeekApi(); - //setup api listeners to return the correct values from the mock week created earlier - when(api.week.update(any, any, any, any)).thenAnswer((_) { + // Setup api listeners to return the correct values + // from the mock week created earlier + when(() => api.week.update(any(), any(), any(), any())).thenAnswer((_) { return Stream.value(mockWeek); }); diff --git a/test/blocs/pictogram_bloc_test.dart b/test/blocs/pictogram_bloc_test.dart index 72050d45b..c3ada2107 100644 --- a/test/blocs/pictogram_bloc_test.dart +++ b/test/blocs/pictogram_bloc_test.dart @@ -35,8 +35,7 @@ void main() { // Make a mock call to the api. // It deposes the result and returns with an empty, seeded list. - when(pictogramApi.getAll( - + when(() => pictogramApi.getAll( page: bloc.latestPage, pageSize: pageSize, query: query)) .thenAnswer((_) => rx_dart.BehaviorSubject>.seeded( [])); @@ -44,8 +43,7 @@ void main() { // Validate behaviour of the stream. bloc.search adds two objects to // bloc.pictograms: one null and one placeholder PictogramModel. // The listener below is called every time bloc.pictograms is updated. - bloc.pictograms.listen((List response) { - + bloc.pictograms.listen((List? response) { switch (count) { case 0: // If the stream is empty, ie. no results, @@ -57,8 +55,7 @@ void main() { case 1: // If the stream is not empty, the 'getAll' method must have been run. // 'verify' makes the test fail if 'getAll' was not called. - verify(pictogramApi.getAll( - + verify(() => pictogramApi.getAll( page: bloc.latestPage, pageSize: pageSize, query: query)); done(); break; diff --git a/test/blocs/weekplans_bloc_test.dart b/test/blocs/weekplans_bloc_test.dart index 4ef5ea758..bbf963d9a 100644 --- a/test/blocs/weekplans_bloc_test.dart +++ b/test/blocs/weekplans_bloc_test.dart @@ -58,51 +58,38 @@ void main() { weekNameModelList.add(weekNameModel1); }); - when(weekApi.getNames('test')).thenAnswer((_) => - rx_dart.BehaviorSubject>.seeded(weekNameModelList)); + when(() => weekApi.getNames('test')).thenAnswer((_) => + rx_dart.BehaviorSubject?>.seeded(weekNameModelList)); - when(weekApi.get( - 'test', weekNameModel1.weekYear, weekNameModel1.weekNumber)) - .thenAnswer( - (_) => rx_dart.BehaviorSubject.seeded(weekModel1)); + when(() => weekApi.get( + 'test', weekNameModel1.weekYear!, weekNameModel1.weekNumber!)) + .thenAnswer((_) => rx_dart.BehaviorSubject.seeded(weekModel1)); - when(weekApi.get( - 'test', weekNameModel2.weekYear, weekNameModel2.weekNumber)) - .thenAnswer( - (_) => rx_dart.BehaviorSubject.seeded(weekModel2)); + when(() => weekApi.get( + 'test', weekNameModel2.weekYear!, weekNameModel2.weekNumber!)) + .thenAnswer((_) => rx_dart.BehaviorSubject.seeded(weekModel2)); - when(weekApi.get( - 'test', weekNameModel3.weekYear, weekNameModel3.weekNumber)) - .thenAnswer( - (_) => rx_dart.BehaviorSubject.seeded(weekModel3)); + when(() => weekApi.get( + 'test', weekNameModel3.weekYear!, weekNameModel3.weekNumber!)) + .thenAnswer((_) => rx_dart.BehaviorSubject.seeded(weekModel3)); - when(weekApi.get( - 'test', weekNameModel4.weekYear, weekNameModel4.weekNumber)) - .thenAnswer( - (_) => rx_dart.BehaviorSubject.seeded(weekModel4)); + when(() => weekApi.get( + 'test', weekNameModel4.weekYear!, weekNameModel4.weekNumber!)) + .thenAnswer((_) => rx_dart.BehaviorSubject.seeded(weekModel4)); - when(weekApi.get( - 'test', weekNameModel5.weekYear, weekNameModel5.weekNumber)) - .thenAnswer( - (_) => rx_dart.BehaviorSubject.seeded(weekModel5)); - - when(weekApi.get( - 'test', weekNameModel6.weekYear, weekNameModel6.weekNumber)) - .thenAnswer( - (_) => rx_dart.BehaviorSubject.seeded(weekModel6)); + when(() => weekApi.get( + 'test', weekNameModel5.weekYear!, weekNameModel5.weekNumber!)) + .thenAnswer((_) => rx_dart.BehaviorSubject.seeded(weekModel5)); + when(() => weekApi.get( + 'test', weekNameModel6.weekYear!, weekNameModel6.weekNumber!)) + .thenAnswer((_) => rx_dart.BehaviorSubject.seeded(weekModel6)); when(() => weekApi.delete(any(), any(), any())) .thenAnswer((_) => rx_dart.BehaviorSubject.seeded(true)); - test('Should be able to load weekplans for a user', async((DoneFn done) { - when(() => weekApi.get( - mockUser.id!, weekNameModel1.weekYear!, weekNameModel1.weekNumber!)) - .thenAnswer( - (_) => rx_dart.BehaviorSubject.seeded(weekModel1)); - - when(() => weekApi.getNames(mockUser.id!)).thenAnswer((_) => - rx_dart.BehaviorSubject>.seeded(weekNameModelList)); + when(() => weekApi.delete(any(), any(), any())) + .thenAnswer((_) => rx_dart.BehaviorSubject.seeded(true)); test('Should be able to load weekplans for a user', async((DoneFn done) { //Checks if the loaded weekNameModels are not null and are equal to the @@ -242,7 +229,6 @@ void main() { bloc.toggleMarkedWeekModel(weekModel1); expect(bloc.getNumberOfMarkedWeekModels(), 1); - bloc.toggleMarkedWeekModel(WeekModel(name: 'testWeekModel')); expect(bloc.getNumberOfMarkedWeekModels(), 2); @@ -259,13 +245,13 @@ void main() { ]; // Gets a mockUser id, WeekNameModel1s yeah and weekNumber // Then anwsers with the seeded WeekNameModel form the list - when(weekApi.get( - mockUser.id, weekNameModel1.weekYear, weekNameModel1.weekNumber)) + when(() => weekApi.get( + mockUser.id!, weekNameModel1.weekYear!, weekNameModel1.weekNumber!)) .thenAnswer( (_) => rx_dart.BehaviorSubject.seeded(weekModel1)); // Gets the id of the mockUser and answers with the // seeded weekNameModelList - when(weekApi.getNames(mockUser.id)).thenAnswer((_) => + when(() => weekApi.getNames(mockUser.id!)).thenAnswer((_) => rx_dart.BehaviorSubject>.seeded(weekNameModelList)); //loads the mockUser, toggles weekModel1 and checks how many // weekModels are marked @@ -302,13 +288,13 @@ void main() { ]; // Gets a mockUser id, WeekNameModel6s yeah and weekNumber // Then anwsers with the seeded WeekNameModel form the list - when(weekApi.get( - mockUser.id, weekNameModel6.weekYear, weekNameModel6.weekNumber)) + when(() => weekApi.get( + mockUser.id!, weekNameModel6.weekYear!, weekNameModel6.weekNumber!)) .thenAnswer( (_) => rx_dart.BehaviorSubject.seeded(weekModel6)); // Gets the id of the mockUser and answers with the // seeded weekNameModelList - when(weekApi.getNames(mockUser.id)).thenAnswer((_) => + when(() => weekApi.getNames(mockUser.id!)).thenAnswer((_) => rx_dart.BehaviorSubject>.seeded(weekNameModelList)); //loads the mockUser, toggles weekModel6 and checks how many @@ -349,38 +335,6 @@ void main() { bloc.toggleEditMode(); })); - //test('Check if the week models are sorted by date', async((DoneFn done) - // async - //{ - // final List correctListOld = [ - // weekModel1, weekModel4, weekModel5 - // ]; - // final List correctListUpcoming = [ - // weekModel3, weekModel2 - // ]; -// - // weekNameModelList.add(weekNameModel2); - // weekNameModelList.add(weekNameModel3); - // weekNameModelList.add(weekNameModel4); - // weekNameModelList.add(weekNameModel5); -// - // weekModelList.add(weekModel2); - // weekModelList.add(weekModel3); - // weekModelList.add(weekModel4); - // weekModelList.add(weekModel5); -// - // bloc.load(DisplayNameModel(displayName: 'test', role: 'test', - // id: 'test')); -// - // bloc.oldWeekModels.listen((ListoldWeekModels) { - // expect(correctListOld, oldWeekModels); - // }); - // bloc.weekModels.listen((ListweekModels) { - // expect(correctListUpcoming, weekModels); - // }); - // done(); - //})); - test('Test marked week models', async((DoneFn done) { final List correctMarked = [ weekModel1, diff --git a/test/screens/weekplan_screen_test.dart b/test/screens/weekplan_screen_test.dart index b16723824..3f2448298 100644 --- a/test/screens/weekplan_screen_test.dart +++ b/test/screens/weekplan_screen_test.dart @@ -1305,12 +1305,8 @@ void main() { WidgetTester tester) async { await tester.runAsync(() async { final Completer checkCompleted = Completer(); - int i = 0; - if(DateTime.now().toString() == DateTime.monday.toString()){ - i++; - } - mockActivities[2].state = ActivityState.Normal; + mockActivities[2].state = ActivityState.Normal; mockActivities[2].timer!.paused = true; mockActivities[2].timer!.fullLength = 100; mockWeek.days![0].activities!.add(mockActivities[2]); diff --git a/test/widgets/giraf_app_bar_widget_test.dart b/test/widgets/giraf_app_bar_widget_test.dart index 9498031df..529ae0b55 100644 --- a/test/widgets/giraf_app_bar_widget_test.dart +++ b/test/widgets/giraf_app_bar_widget_test.dart @@ -47,7 +47,6 @@ class MockScreen extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: GirafAppBar( - title: 'TestTitle', appBarIcons: { AppBarIcon.logout: () {}, @@ -90,7 +89,6 @@ void main() { // otherwise the widget is not testable Widget makeTestableWidget({Widget? child}) { - return MaterialApp( home: child, ); @@ -101,10 +99,10 @@ void main() { // simulate a frame change, which is done using tester.pump. // This is done through the doUpdate parameter, which is true by default. Future simulateTestWidget( - {WidgetTester tester, Widget widget, bool doUpdate = true}) async { - await tester.pumpWidget(makeTestableWidget(child: widget)); + {WidgetTester? tester, Widget? widget, bool doUpdate = true}) async { + await tester?.pumpWidget(makeTestableWidget(child: widget)); if (doUpdate) { - await tester.pump(); + await tester?.pump(); } } @@ -115,7 +113,6 @@ void main() { di.registerDependency(() => ToolbarBloc(), override: true); } - testWidgets('Elements on dialog should be visible', (WidgetTester tester) async { // we have to use a diffent authbloc, where everything is not overridden @@ -219,7 +216,6 @@ void main() { // For reference, all of the tests were not documented. - testWidgets('Has toolbar with title', (WidgetTester tester) async { final GirafAppBar girafAppBar = GirafAppBar( title: 'Ugeplan', @@ -268,7 +264,6 @@ void main() { testWidgets('Add button is displayed', (WidgetTester tester) async { final GirafAppBar girafAppBar = GirafAppBar( - title: 'Ugeplan', appBarIcons: {AppBarIcon.add: () {}}, key: UniqueKey(), @@ -281,7 +276,6 @@ void main() { testWidgets('Add timer button is displayed', (WidgetTester tester) async { final GirafAppBar girafAppBar = GirafAppBar( - title: 'Ugeplan', appBarIcons: {AppBarIcon.addTimer: () {}}, key: UniqueKey(), @@ -294,7 +288,6 @@ void main() { testWidgets('Back button is displayed', (WidgetTester tester) async { final GirafAppBar girafAppBar = GirafAppBar( - title: 'Ugeplan', appBarIcons: {AppBarIcon.back: () {}}, key: UniqueKey(), @@ -550,7 +543,7 @@ void main() { // If there is a discrepancy between the stream and // the expected value 'false', the test fails. expect(statusLogout, isFalse); - done.complete(); + done.complete(true); }); // Wait for the stream above to update. diff --git a/test/widgets/pictogram_image_test.dart b/test/widgets/pictogram_image_test.dart index eb92c7db7..8c7d33501 100644 --- a/test/widgets/pictogram_image_test.dart +++ b/test/widgets/pictogram_image_test.dart @@ -138,16 +138,14 @@ void main() { //sets up the widget. await tester.pumpWidget(PictogramImage( - key: Key('pictogram_image_key'), - pictogram: pictogramModel, - onPressed: () { - onPressedCallbackTriggered = true; - }, - key: const ValueKey('callbackKey'), - )); + key: const ValueKey('pictogram_image_key'), + pictogram: pictogramModel, + onPressed: () { + onPressedCallbackTriggered = true; + })); // Finder that gets the PictogramImage widget by key. - final Finder f = find.byKey(Key('pictogram_image_key')); + final Finder f = find.byKey(const ValueKey('pictogram_image_key')); // Tap the PictogramImage widget. await tester.tap(f);