From 5912cea664bf5fdcd4d5deb4d83c9991a6f07ed0 Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Tue, 4 Nov 2025 15:03:50 +0100 Subject: [PATCH] Fix some tests --- lib/main.dart | 2 - lib/providers/routines.dart | 7 +- .../routine_date_sequence_display.json | 32 +- .../routines/routine_date_sequence_gym.json | 100 ++-- test/fixtures/routines/routine_logs.json | 27 +- test/fixtures/routines/routine_structure.json | 4 +- test/routine/forms/session_form_test.dart | 8 +- test/routine/gym_mode_screen_test.dart | 70 ++- test/routine/gym_mode_screen_test.mocks.dart | 529 +++++------------- test/routine/routine_screen_test.dart | 48 +- test/routine/routines_provider_test.dart | 98 +--- .../routine/routines_provider_test.mocks.dart | 134 ----- 12 files changed, 286 insertions(+), 773 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 8ab0aa05..222a2b23 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -170,14 +170,12 @@ class MainApp extends StatelessWidget { ChangeNotifierProxyProvider( create: (context) => RoutinesProvider( WgerBaseProvider(Provider.of(context, listen: false)), - [], exercises: [], ), update: (context, auth, previous) => previous ?? RoutinesProvider( WgerBaseProvider(auth), - [], exercises: [], ), ), diff --git a/lib/providers/routines.dart b/lib/providers/routines.dart index 51c5c8b2..6d4b777c 100644 --- a/lib/providers/routines.dart +++ b/lib/providers/routines.dart @@ -81,13 +81,13 @@ class RoutinesProvider with ChangeNotifier { List _repetitionUnits = []; RoutinesProvider( - this.baseProvider, - List entries, { + this.baseProvider, { + List? entries, List? weightUnits, List? repetitionUnits, List? exercises, }) { - _routines = entries; + _routines = entries ?? []; _weightUnits = weightUnits ?? []; _repetitionUnits = repetitionUnits ?? []; _exercises = exercises ?? []; @@ -305,6 +305,7 @@ class RoutinesProvider with ChangeNotifier { for (final slotEntry in slot.entries) { final exerciseId = slotEntry.exerciseId; if (!exercises.containsKey(exerciseId)) { + print(exerciseId); exercises[exerciseId] = _getExerciseById(exerciseId); } slotEntry.exerciseObj = exercises[exerciseId]!; diff --git a/test/fixtures/routines/routine_date_sequence_display.json b/test/fixtures/routines/routine_date_sequence_display.json index faf59fa8..6f26fc86 100644 --- a/test/fixtures/routines/routine_date_sequence_display.json +++ b/test/fixtures/routines/routine_date_sequence_display.json @@ -19,12 +19,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 4, "max_sets": null, "weight": "80.00", @@ -90,7 +90,7 @@ "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 4, "max_sets": null, "weight": "20.00", @@ -169,12 +169,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 4, "max_sets": null, "weight": "80.00", @@ -240,7 +240,7 @@ "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 4, "max_sets": null, "weight": "21.00", @@ -312,12 +312,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 4, "max_sets": null, "weight": "80.00", @@ -383,7 +383,7 @@ "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 4, "max_sets": null, "weight": "22.00", @@ -455,12 +455,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 4, "max_sets": null, "weight": "80.00", @@ -521,12 +521,12 @@ "comment": "", "is_superset": false, "exercises": [ - 92 + 6 ], "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 4, "max_sets": null, "weight": "23.00", @@ -598,12 +598,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 4, "max_sets": null, "weight": "80.00", @@ -669,7 +669,7 @@ "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 4, "max_sets": null, "weight": "24.00", diff --git a/test/fixtures/routines/routine_date_sequence_gym.json b/test/fixtures/routines/routine_date_sequence_gym.json index b1708632..5d8fd39b 100644 --- a/test/fixtures/routines/routine_date_sequence_gym.json +++ b/test/fixtures/routines/routine_date_sequence_gym.json @@ -19,12 +19,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -46,7 +46,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -68,7 +68,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -90,7 +90,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -151,12 +151,12 @@ "comment": "", "is_superset": false, "exercises": [ - 92 + 6 ], "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "20.00", @@ -178,7 +178,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "20.00", @@ -200,7 +200,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "20.00", @@ -222,7 +222,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "20.00", @@ -301,12 +301,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -328,7 +328,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -350,7 +350,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -372,7 +372,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -433,12 +433,12 @@ "comment": "", "is_superset": false, "exercises": [ - 92 + 6 ], "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "21.00", @@ -460,7 +460,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "21.00", @@ -482,7 +482,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "21.00", @@ -504,7 +504,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "21.00", @@ -576,12 +576,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -603,7 +603,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -625,7 +625,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -647,7 +647,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -708,12 +708,12 @@ "comment": "", "is_superset": false, "exercises": [ - 92 + 6 ], "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "22.00", @@ -735,7 +735,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "22.00", @@ -757,7 +757,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "22.00", @@ -779,7 +779,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "22.00", @@ -851,12 +851,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -878,7 +878,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -900,7 +900,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -922,7 +922,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -983,12 +983,12 @@ "comment": "", "is_superset": false, "exercises": [ - 92 + 6 ], "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "23.00", @@ -1010,7 +1010,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "23.00", @@ -1032,7 +1032,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "23.00", @@ -1054,7 +1054,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "23.00", @@ -1126,12 +1126,12 @@ "comment": "", "is_superset": false, "exercises": [ - 76 + 4 ], "sets": [ { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -1153,7 +1153,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -1175,7 +1175,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -1197,7 +1197,7 @@ }, { "slot_entry_id": 2, - "exercise": 76, + "exercise": 4, "sets": 1, "max_sets": null, "weight": "80.00", @@ -1258,12 +1258,12 @@ "comment": "", "is_superset": false, "exercises": [ - 92 + 6 ], "sets": [ { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "24.00", @@ -1285,7 +1285,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "24.00", @@ -1307,7 +1307,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "24.00", @@ -1329,7 +1329,7 @@ }, { "slot_entry_id": 3, - "exercise": 92, + "exercise": 6, "sets": 1, "max_sets": null, "weight": "24.00", diff --git a/test/fixtures/routines/routine_logs.json b/test/fixtures/routines/routine_logs.json index 1835cc3d..05b50632 100644 --- a/test/fixtures/routines/routine_logs.json +++ b/test/fixtures/routines/routine_logs.json @@ -2,6 +2,7 @@ { "session": { "id": 5, + "uuid": "3291b27b-1973-455d-896c-57e705373e6c", "routine": 2, "day": null, "date": "2025-01-06", @@ -19,7 +20,7 @@ "iteration": 1, "slot_entry": 2, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "11.00", "repetitions_target": "10.00", @@ -39,7 +40,7 @@ "iteration": 1, "slot_entry": 2, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "12.00", "repetitions_target": "10.00", @@ -59,7 +60,7 @@ "iteration": 1, "slot_entry": 2, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "12.00", "repetitions_target": "10.00", @@ -79,7 +80,7 @@ "iteration": 1, "slot_entry": 2, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "12.00", "repetitions_target": "10.00", @@ -96,6 +97,7 @@ { "session": { "id": 6, + "uuid":"7e3d2a44-1a99-46d7-a58c-955f5fee8145", "routine": 2, "day": null, "date": "2025-01-08", @@ -113,7 +115,7 @@ "iteration": 1, "slot_entry": 3, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "10.00", "repetitions_target": "10.00", @@ -133,7 +135,7 @@ "iteration": 1, "slot_entry": 3, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "11.00", "repetitions_target": "10.00", @@ -153,7 +155,7 @@ "iteration": 1, "slot_entry": 3, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "11.00", "repetitions_target": "10.00", @@ -173,7 +175,7 @@ "iteration": 1, "slot_entry": 3, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "12.00", "repetitions_target": "10.00", @@ -190,6 +192,7 @@ { "session": { "id": 7, + "uuid": "226768ac-c011-46dd-937f-e81a4a9f6b6a", "routine": 2, "day": null, "date": "2025-01-13", @@ -207,7 +210,7 @@ "iteration": 2, "slot_entry": 2, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "9.00", "repetitions_target": "10.00", @@ -227,7 +230,7 @@ "iteration": 2, "slot_entry": 2, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "10.00", "repetitions_target": "10.00", @@ -247,7 +250,7 @@ "iteration": 2, "slot_entry": 2, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "10.00", "repetitions_target": "10.00", @@ -267,7 +270,7 @@ "iteration": 2, "slot_entry": 2, "next_log": null, - "exercise": 76, + "exercise": 4, "repetitions_unit": 1, "repetitions": "12.00", "repetitions_target": "10.00", diff --git a/test/fixtures/routines/routine_structure.json b/test/fixtures/routines/routine_structure.json index aadf28cd..fcbc07d0 100644 --- a/test/fixtures/routines/routine_structure.json +++ b/test/fixtures/routines/routine_structure.json @@ -27,7 +27,7 @@ { "id": 2, "slot": 2, - "exercise": 76, + "exercise": 4, "order": 1, "comment": "", "type": "normal", @@ -129,7 +129,7 @@ { "id": 3, "slot": 3, - "exercise": 92, + "exercise": 6, "order": 1, "comment": "", "type": "normal", diff --git a/test/routine/forms/session_form_test.dart b/test/routine/forms/session_form_test.dart index 53302ea9..270c6c3c 100644 --- a/test/routine/forms/session_form_test.dart +++ b/test/routine/forms/session_form_test.dart @@ -54,7 +54,7 @@ void main() { testWidgets('renders correctly for an existing session', (WidgetTester tester) async { //Arrange final existingSession = WorkoutSession( - id: 1, + id: '1', routineId: 1, notes: 'Existing notes', impression: 1, @@ -80,7 +80,7 @@ void main() { await pumpSessionForm(tester, onSaved: () => onSavedCalled = true); when(mockRoutinesProvider.addSession(any, any)).thenAnswer( - (_) async => WorkoutSession(id: 1, routineId: 1, date: DateTime.now()), + (_) async => WorkoutSession(id: '1', routineId: 1, date: DateTime.now()), ); // Act @@ -97,7 +97,7 @@ void main() { // Arrange bool onSavedCalled = false; final existingSession = WorkoutSession( - id: 1, + id: '1', routineId: 1, notes: 'Old notes', impression: 2, @@ -105,7 +105,7 @@ void main() { ); when(mockRoutinesProvider.editSession(any)).thenAnswer( (_) async => WorkoutSession( - id: 1, + id: '1', routineId: 1, date: DateTime.now(), ), diff --git a/test/routine/gym_mode_screen_test.dart b/test/routine/gym_mode_screen_test.dart index 90ce6028..0a5d9bac 100644 --- a/test/routine/gym_mode_screen_test.dart +++ b/test/routine/gym_mode_screen_test.dart @@ -26,8 +26,9 @@ import 'package:provider/provider.dart'; import 'package:shared_preferences_platform_interface/in_memory_shared_preferences_async.dart'; import 'package:shared_preferences_platform_interface/shared_preferences_async_platform_interface.dart'; import 'package:wger/l10n/generated/app_localizations.dart'; -import 'package:wger/providers/base_provider.dart'; -import 'package:wger/providers/exercises.dart'; +import 'package:wger/models/exercises/category.dart'; +import 'package:wger/models/exercises/equipment.dart'; +import 'package:wger/providers/exercise_data.dart'; import 'package:wger/providers/routines.dart'; import 'package:wger/screens/gym_mode.dart'; import 'package:wger/screens/routine_screen.dart'; @@ -44,22 +45,16 @@ import '../../test_data/exercises.dart'; import '../../test_data/routines.dart'; import 'gym_mode_screen_test.mocks.dart'; -@GenerateMocks([WgerBaseProvider, ExercisesProvider, RoutinesProvider]) +@GenerateMocks([RoutinesProvider]) void main() { final key = GlobalKey(); final mockRoutinesProvider = MockRoutinesProvider(); - final mockExerciseProvider = MockExercisesProvider(); final testRoutine = getTestRoutine(); - final testExercises = getTestExercises(); setUp(() { when(mockRoutinesProvider.findById(any)).thenReturn(testRoutine); when(mockRoutinesProvider.items).thenReturn([testRoutine]); - when(mockRoutinesProvider.repetitionUnits).thenReturn(testRepetitionUnits); - when(mockRoutinesProvider.getRepetitionUnitById(1)).thenReturn(testRepetitionUnit1); - when(mockRoutinesProvider.weightUnits).thenReturn(testWeightUnits); - when(mockRoutinesProvider.getWeightUnitById(1)).thenReturn(testWeightUnit1); when( mockRoutinesProvider.fetchAndSetRoutineFull(any), ).thenAnswer((_) => Future.value(testRoutine)); @@ -70,40 +65,43 @@ void main() { Widget renderGymMode({locale = 'en'}) { return ChangeNotifierProvider( create: (context) => mockRoutinesProvider, - child: ChangeNotifierProvider( - create: (context) => mockExerciseProvider, - child: riverpod.ProviderScope( - child: MaterialApp( - locale: Locale(locale), - localizationsDelegates: AppLocalizations.localizationsDelegates, - supportedLocales: AppLocalizations.supportedLocales, - navigatorKey: key, - home: TextButton( - onPressed: () => key.currentState!.push( - MaterialPageRoute( - settings: const RouteSettings(arguments: GymModeArguments(1, 1, 1)), - builder: (_) => const GymModeScreen(), - ), - ), - child: const SizedBox(), - ), - routes: {RoutineScreen.routeName: (ctx) => const RoutineScreen()}, + child: riverpod.ProviderScope( + overrides: [ + exercisesProvider.overrideWithValue(riverpod.AsyncValue.data(getTestExercises())), + exerciseEquipmentProvider.overrideWithValue( + const riverpod.AsyncValue.data([]), ), + exerciseCategoriesProvider.overrideWithValue( + const riverpod.AsyncValue.data([]), + ), + routineRepetitionUnitProvider.overrideWithValue( + const riverpod.AsyncValue.data(testRepetitionUnits), + ), + routineWeightUnitProvider.overrideWithValue( + const riverpod.AsyncValue.data(testWeightUnits), + ), + ], + child: MaterialApp( + locale: Locale(locale), + localizationsDelegates: AppLocalizations.localizationsDelegates, + supportedLocales: AppLocalizations.supportedLocales, + navigatorKey: key, + home: TextButton( + onPressed: () => key.currentState!.push( + MaterialPageRoute( + settings: const RouteSettings(arguments: GymModeArguments(1, 1, 1)), + builder: (_) => const GymModeScreen(), + ), + ), + child: const SizedBox(), + ), + routes: {RoutineScreen.routeName: (ctx) => const RoutineScreen()}, ), ), ); } testWidgets('Test the widgets on the gym mode screen', (WidgetTester tester) async { - when(mockExerciseProvider.findExerciseById(1)).thenReturn(testExercises[0]); - when(mockExerciseProvider.findExerciseById(6)).thenReturn(testExercises[5]); - when( - mockExerciseProvider.findExercisesByVariationId( - null, - exerciseIdToExclude: anyNamed('exerciseIdToExclude'), - ), - ).thenReturn([]); - await withClock(Clock.fixed(DateTime(2025, 3, 29, 14, 33)), () async { await tester.pumpWidget(renderGymMode()); diff --git a/test/routine/gym_mode_screen_test.mocks.dart b/test/routine/gym_mode_screen_test.mocks.dart index 36394e3e..e2b05cba 100644 --- a/test/routine/gym_mode_screen_test.mocks.dart +++ b/test/routine/gym_mode_screen_test.mocks.dart @@ -4,29 +4,22 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i20; +import 'dart:ui' as _i16; -import 'package:http/http.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i23; -import 'package:wger/models/exercises/category.dart' as _i16; -import 'package:wger/models/exercises/equipment.dart' as _i18; -import 'package:wger/models/exercises/exercise.dart' as _i15; -import 'package:wger/models/exercises/language.dart' as _i19; -import 'package:wger/models/exercises/muscle.dart' as _i17; -import 'package:wger/models/workouts/base_config.dart' as _i11; -import 'package:wger/models/workouts/day.dart' as _i8; -import 'package:wger/models/workouts/day_data.dart' as _i22; -import 'package:wger/models/workouts/repetition_unit.dart' as _i6; -import 'package:wger/models/workouts/routine.dart' as _i7; -import 'package:wger/models/workouts/session.dart' as _i12; -import 'package:wger/models/workouts/slot.dart' as _i9; -import 'package:wger/models/workouts/slot_entry.dart' as _i10; -import 'package:wger/models/workouts/weight_unit.dart' as _i5; -import 'package:wger/providers/auth.dart' as _i2; -import 'package:wger/providers/base_provider.dart' as _i4; -import 'package:wger/providers/exercises.dart' as _i14; -import 'package:wger/providers/routines.dart' as _i21; +import 'package:mockito/src/dummies.dart' as _i15; +import 'package:wger/models/exercises/exercise.dart' as _i12; +import 'package:wger/models/workouts/base_config.dart' as _i9; +import 'package:wger/models/workouts/day.dart' as _i6; +import 'package:wger/models/workouts/day_data.dart' as _i14; +import 'package:wger/models/workouts/repetition_unit.dart' as _i4; +import 'package:wger/models/workouts/routine.dart' as _i5; +import 'package:wger/models/workouts/session.dart' as _i10; +import 'package:wger/models/workouts/slot.dart' as _i7; +import 'package:wger/models/workouts/slot_entry.dart' as _i8; +import 'package:wger/models/workouts/weight_unit.dart' as _i3; +import 'package:wger/providers/base_provider.dart' as _i2; +import 'package:wger/providers/routines.dart' as _i11; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -42,394 +35,130 @@ import 'package:wger/providers/routines.dart' as _i21; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeAuthProvider_0 extends _i1.SmartFake implements _i2.AuthProvider { - _FakeAuthProvider_0(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); -} - -class _FakeClient_1 extends _i1.SmartFake implements _i3.Client { - _FakeClient_1(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); -} - -class _FakeUri_2 extends _i1.SmartFake implements Uri { - _FakeUri_2(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); -} - -class _FakeResponse_3 extends _i1.SmartFake implements _i3.Response { - _FakeResponse_3(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); -} - -class _FakeWgerBaseProvider_4 extends _i1.SmartFake implements _i4.WgerBaseProvider { - _FakeWgerBaseProvider_4(Object parent, Invocation parentInvocation) +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { + _FakeWgerBaseProvider_0(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeWeightUnit_5 extends _i1.SmartFake implements _i5.WeightUnit { - _FakeWeightUnit_5(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); +class _FakeWeightUnit_1 extends _i1.SmartFake implements _i3.WeightUnit { + _FakeWeightUnit_1(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeRepetitionUnit_6 extends _i1.SmartFake implements _i6.RepetitionUnit { - _FakeRepetitionUnit_6(Object parent, Invocation parentInvocation) +class _FakeRepetitionUnit_2 extends _i1.SmartFake implements _i4.RepetitionUnit { + _FakeRepetitionUnit_2(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeRoutine_7 extends _i1.SmartFake implements _i7.Routine { - _FakeRoutine_7(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); +class _FakeRoutine_3 extends _i1.SmartFake implements _i5.Routine { + _FakeRoutine_3(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeDay_8 extends _i1.SmartFake implements _i8.Day { - _FakeDay_8(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); +class _FakeDay_4 extends _i1.SmartFake implements _i6.Day { + _FakeDay_4(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeSlot_9 extends _i1.SmartFake implements _i9.Slot { - _FakeSlot_9(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); +class _FakeSlot_5 extends _i1.SmartFake implements _i7.Slot { + _FakeSlot_5(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeSlotEntry_10 extends _i1.SmartFake implements _i10.SlotEntry { - _FakeSlotEntry_10(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); +class _FakeSlotEntry_6 extends _i1.SmartFake implements _i8.SlotEntry { + _FakeSlotEntry_6(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeBaseConfig_11 extends _i1.SmartFake implements _i11.BaseConfig { - _FakeBaseConfig_11(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); +class _FakeBaseConfig_7 extends _i1.SmartFake implements _i9.BaseConfig { + _FakeBaseConfig_7(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeWorkoutSession_12 extends _i1.SmartFake implements _i12.WorkoutSession { - _FakeWorkoutSession_12(Object parent, Invocation parentInvocation) +class _FakeWorkoutSession_8 extends _i1.SmartFake implements _i10.WorkoutSession { + _FakeWorkoutSession_8(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -/// A class which mocks [WgerBaseProvider]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { - MockWgerBaseProvider() { - _i1.throwOnMissingStub(this); - } - - @override - _i2.AuthProvider get auth => - (super.noSuchMethod( - Invocation.getter(#auth), - returnValue: _FakeAuthProvider_0(this, Invocation.getter(#auth)), - ) - as _i2.AuthProvider); - - @override - _i3.Client get client => - (super.noSuchMethod( - Invocation.getter(#client), - returnValue: _FakeClient_1(this, Invocation.getter(#client)), - ) - as _i3.Client); - - @override - set auth(_i2.AuthProvider? _auth) => super.noSuchMethod( - Invocation.setter(#auth, _auth), - returnValueForMissingStub: null, - ); - - @override - set client(_i3.Client? _client) => super.noSuchMethod( - Invocation.setter(#client, _client), - returnValueForMissingStub: null, - ); - - @override - Map getDefaultHeaders({bool? includeAuth = false}) => - (super.noSuchMethod( - Invocation.method(#getDefaultHeaders, [], { - #includeAuth: includeAuth, - }), - returnValue: {}, - ) - as Map); - - @override - Uri makeUrl( - String? path, { - int? id, - String? objectMethod, - Map? query, - }) => - (super.noSuchMethod( - Invocation.method( - #makeUrl, - [path], - {#id: id, #objectMethod: objectMethod, #query: query}, - ), - returnValue: _FakeUri_2( - this, - Invocation.method( - #makeUrl, - [path], - {#id: id, #objectMethod: objectMethod, #query: query}, - ), - ), - ) - as Uri); - - @override - _i13.Future fetch(Uri? uri) => - (super.noSuchMethod( - Invocation.method(#fetch, [uri]), - returnValue: _i13.Future.value(), - ) - as _i13.Future); - - @override - _i13.Future> fetchPaginated(Uri? uri) => - (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri]), - returnValue: _i13.Future>.value([]), - ) - as _i13.Future>); - - @override - _i13.Future> post( - Map? data, - Uri? uri, - ) => - (super.noSuchMethod( - Invocation.method(#post, [data, uri]), - returnValue: _i13.Future>.value( - {}, - ), - ) - as _i13.Future>); - - @override - _i13.Future> patch( - Map? data, - Uri? uri, - ) => - (super.noSuchMethod( - Invocation.method(#patch, [data, uri]), - returnValue: _i13.Future>.value( - {}, - ), - ) - as _i13.Future>); - - @override - _i13.Future<_i3.Response> deleteRequest(String? url, int? id) => - (super.noSuchMethod( - Invocation.method(#deleteRequest, [url, id]), - returnValue: _i13.Future<_i3.Response>.value( - _FakeResponse_3( - this, - Invocation.method(#deleteRequest, [url, id]), - ), - ), - ) - as _i13.Future<_i3.Response>); -} - -/// A class which mocks [ExercisesProvider]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockExercisesProvider extends _i1.Mock implements _i14.ExercisesProvider { - MockExercisesProvider() { - _i1.throwOnMissingStub(this); - } - - @override - _i4.WgerBaseProvider get baseProvider => - (super.noSuchMethod( - Invocation.getter(#baseProvider), - returnValue: _FakeWgerBaseProvider_4( - this, - Invocation.getter(#baseProvider), - ), - ) - as _i4.WgerBaseProvider); - - @override - List<_i15.Exercise> get exercises => - (super.noSuchMethod( - Invocation.getter(#exercises), - returnValue: <_i15.Exercise>[], - ) - as List<_i15.Exercise>); - - @override - Map> get exerciseByVariation => - (super.noSuchMethod( - Invocation.getter(#exerciseByVariation), - returnValue: >{}, - ) - as Map>); - - @override - List<_i16.ExerciseCategory> get categories => - (super.noSuchMethod( - Invocation.getter(#categories), - returnValue: <_i16.ExerciseCategory>[], - ) - as List<_i16.ExerciseCategory>); - - @override - List<_i17.Muscle> get muscles => - (super.noSuchMethod( - Invocation.getter(#muscles), - returnValue: <_i17.Muscle>[], - ) - as List<_i17.Muscle>); - - @override - List<_i18.Equipment> get equipment => - (super.noSuchMethod( - Invocation.getter(#equipment), - returnValue: <_i18.Equipment>[], - ) - as List<_i18.Equipment>); - - @override - List<_i19.Language> get languages => - (super.noSuchMethod( - Invocation.getter(#languages), - returnValue: <_i19.Language>[], - ) - as List<_i19.Language>); - - @override - set exercises(List<_i15.Exercise>? _exercises) => super.noSuchMethod( - Invocation.setter(#exercises, _exercises), - returnValueForMissingStub: null, - ); - - @override - set languages(List<_i19.Language>? languages) => super.noSuchMethod( - Invocation.setter(#languages, languages), - returnValueForMissingStub: null, - ); - - @override - bool get hasListeners => - (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); - - @override - void clear() => super.noSuchMethod( - Invocation.method(#clear, []), - returnValueForMissingStub: null, - ); - - @override - _i13.Future<_i15.Exercise?> fetchAndSetExercise(int? exerciseId) => - (super.noSuchMethod( - Invocation.method(#fetchAndSetExercise, [exerciseId]), - returnValue: _i13.Future<_i15.Exercise?>.value(), - ) - as _i13.Future<_i15.Exercise?>); - - @override - void addListener(_i20.VoidCallback? listener) => super.noSuchMethod( - Invocation.method(#addListener, [listener]), - returnValueForMissingStub: null, - ); - - @override - void removeListener(_i20.VoidCallback? listener) => super.noSuchMethod( - Invocation.method(#removeListener, [listener]), - returnValueForMissingStub: null, - ); - - @override - void dispose() => super.noSuchMethod( - Invocation.method(#dispose, []), - returnValueForMissingStub: null, - ); - - @override - void notifyListeners() => super.noSuchMethod( - Invocation.method(#notifyListeners, []), - returnValueForMissingStub: null, - ); -} - /// A class which mocks [RoutinesProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { +class MockRoutinesProvider extends _i1.Mock implements _i11.RoutinesProvider { MockRoutinesProvider() { _i1.throwOnMissingStub(this); } @override - _i4.WgerBaseProvider get baseProvider => + _i2.WgerBaseProvider get baseProvider => (super.noSuchMethod( Invocation.getter(#baseProvider), - returnValue: _FakeWgerBaseProvider_4( + returnValue: _FakeWgerBaseProvider_0( this, Invocation.getter(#baseProvider), ), ) - as _i4.WgerBaseProvider); + as _i2.WgerBaseProvider); @override - List<_i5.WeightUnit> get weightUnits => + List<_i3.WeightUnit> get weightUnits => (super.noSuchMethod( Invocation.getter(#weightUnits), - returnValue: <_i5.WeightUnit>[], + returnValue: <_i3.WeightUnit>[], ) - as List<_i5.WeightUnit>); + as List<_i3.WeightUnit>); @override - List<_i7.Routine> get items => + List<_i5.Routine> get items => (super.noSuchMethod( Invocation.getter(#items), - returnValue: <_i7.Routine>[], + returnValue: <_i5.Routine>[], ) - as List<_i7.Routine>); + as List<_i5.Routine>); @override - _i5.WeightUnit get defaultWeightUnit => + _i3.WeightUnit get defaultWeightUnit => (super.noSuchMethod( Invocation.getter(#defaultWeightUnit), - returnValue: _FakeWeightUnit_5( + returnValue: _FakeWeightUnit_1( this, Invocation.getter(#defaultWeightUnit), ), ) - as _i5.WeightUnit); + as _i3.WeightUnit); @override - List<_i6.RepetitionUnit> get repetitionUnits => + List<_i4.RepetitionUnit> get repetitionUnits => (super.noSuchMethod( Invocation.getter(#repetitionUnits), - returnValue: <_i6.RepetitionUnit>[], + returnValue: <_i4.RepetitionUnit>[], ) - as List<_i6.RepetitionUnit>); + as List<_i4.RepetitionUnit>); @override - _i6.RepetitionUnit get defaultRepetitionUnit => + _i4.RepetitionUnit get defaultRepetitionUnit => (super.noSuchMethod( Invocation.getter(#defaultRepetitionUnit), - returnValue: _FakeRepetitionUnit_6( + returnValue: _FakeRepetitionUnit_2( this, Invocation.getter(#defaultRepetitionUnit), ), ) - as _i6.RepetitionUnit); + as _i4.RepetitionUnit); @override - set activeRoutine(_i7.Routine? _activeRoutine) => super.noSuchMethod( + set activeRoutine(_i5.Routine? _activeRoutine) => super.noSuchMethod( Invocation.setter(#activeRoutine, _activeRoutine), returnValueForMissingStub: null, ); @override - set exercises(List<_i15.Exercise>? exercises) => super.noSuchMethod( + set exercises(List<_i12.Exercise>? exercises) => super.noSuchMethod( Invocation.setter(#exercises, exercises), returnValueForMissingStub: null, ); @override - set repetitionUnits(List<_i6.RepetitionUnit>? units) => super.noSuchMethod( + set repetitionUnits(List<_i4.RepetitionUnit>? units) => super.noSuchMethod( Invocation.setter(#repetitionUnits, units), returnValueForMissingStub: null, ); @override - set weightUnits(List<_i5.WeightUnit>? units) => super.noSuchMethod( + set weightUnits(List<_i3.WeightUnit>? units) => super.noSuchMethod( Invocation.setter(#weightUnits, units), returnValueForMissingStub: null, ); @@ -439,26 +168,26 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); @override - _i6.RepetitionUnit getRepetitionUnitById(int? id) => + _i4.RepetitionUnit getRepetitionUnitById(int? id) => (super.noSuchMethod( Invocation.method(#getRepetitionUnitById, [id]), - returnValue: _FakeRepetitionUnit_6( + returnValue: _FakeRepetitionUnit_2( this, Invocation.method(#getRepetitionUnitById, [id]), ), ) - as _i6.RepetitionUnit); + as _i4.RepetitionUnit); @override - _i5.WeightUnit getWeightUnitById(int? id) => + _i3.WeightUnit getWeightUnitById(int? id) => (super.noSuchMethod( Invocation.method(#getWeightUnitById, [id]), - returnValue: _FakeWeightUnit_5( + returnValue: _FakeWeightUnit_1( this, Invocation.method(#getWeightUnitById, [id]), ), ) - as _i5.WeightUnit); + as _i3.WeightUnit); @override void clear() => super.noSuchMethod( @@ -467,23 +196,23 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { ); @override - List<_i7.Routine> getPlans() => + List<_i5.Routine> getPlans() => (super.noSuchMethod( Invocation.method(#getPlans, []), - returnValue: <_i7.Routine>[], + returnValue: <_i5.Routine>[], ) - as List<_i7.Routine>); + as List<_i5.Routine>); @override - _i7.Routine findById(int? id) => + _i5.Routine findById(int? id) => (super.noSuchMethod( Invocation.method(#findById, [id]), - returnValue: _FakeRoutine_7( + returnValue: _FakeRoutine_3( this, Invocation.method(#findById, [id]), ), ) - as _i7.Routine); + as _i5.Routine); @override int findIndexById(int? id) => @@ -513,8 +242,8 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { @override _i13.Future setExercisesAndUnits( - List<_i22.DayData>? entries, { - Map? exercises, + List<_i14.DayData>? entries, { + Map? exercises, }) => (super.noSuchMethod( Invocation.method( @@ -528,43 +257,43 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future<_i7.Routine> fetchAndSetRoutineSparse(int? planId) => + _i13.Future<_i5.Routine> fetchAndSetRoutineSparse(int? planId) => (super.noSuchMethod( Invocation.method(#fetchAndSetRoutineSparse, [planId]), - returnValue: _i13.Future<_i7.Routine>.value( - _FakeRoutine_7( + returnValue: _i13.Future<_i5.Routine>.value( + _FakeRoutine_3( this, Invocation.method(#fetchAndSetRoutineSparse, [planId]), ), ), ) - as _i13.Future<_i7.Routine>); + as _i13.Future<_i5.Routine>); @override - _i13.Future<_i7.Routine> fetchAndSetRoutineFull(int? routineId) => + _i13.Future<_i5.Routine> fetchAndSetRoutineFull(int? routineId) => (super.noSuchMethod( Invocation.method(#fetchAndSetRoutineFull, [routineId]), - returnValue: _i13.Future<_i7.Routine>.value( - _FakeRoutine_7( + returnValue: _i13.Future<_i5.Routine>.value( + _FakeRoutine_3( this, Invocation.method(#fetchAndSetRoutineFull, [routineId]), ), ), ) - as _i13.Future<_i7.Routine>); + as _i13.Future<_i5.Routine>); @override - _i13.Future<_i7.Routine> addRoutine(_i7.Routine? routine) => + _i13.Future<_i5.Routine> addRoutine(_i5.Routine? routine) => (super.noSuchMethod( Invocation.method(#addRoutine, [routine]), - returnValue: _i13.Future<_i7.Routine>.value( - _FakeRoutine_7(this, Invocation.method(#addRoutine, [routine])), + returnValue: _i13.Future<_i5.Routine>.value( + _FakeRoutine_3(this, Invocation.method(#addRoutine, [routine])), ), ) - as _i13.Future<_i7.Routine>); + as _i13.Future<_i5.Routine>); @override - _i13.Future editRoutine(_i7.Routine? routine) => + _i13.Future editRoutine(_i5.Routine? routine) => (super.noSuchMethod( Invocation.method(#editRoutine, [routine]), returnValue: _i13.Future.value(), @@ -582,17 +311,17 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future<_i8.Day> addDay(_i8.Day? day) => + _i13.Future<_i6.Day> addDay(_i6.Day? day) => (super.noSuchMethod( Invocation.method(#addDay, [day]), - returnValue: _i13.Future<_i8.Day>.value( - _FakeDay_8(this, Invocation.method(#addDay, [day])), + returnValue: _i13.Future<_i6.Day>.value( + _FakeDay_4(this, Invocation.method(#addDay, [day])), ), ) - as _i13.Future<_i8.Day>); + as _i13.Future<_i6.Day>); @override - _i13.Future editDay(_i8.Day? day) => + _i13.Future editDay(_i6.Day? day) => (super.noSuchMethod( Invocation.method(#editDay, [day]), returnValue: _i13.Future.value(), @@ -601,7 +330,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future editDays(List<_i8.Day>? days) => + _i13.Future editDays(List<_i6.Day>? days) => (super.noSuchMethod( Invocation.method(#editDays, [days]), returnValue: _i13.Future.value(), @@ -619,14 +348,14 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future<_i9.Slot> addSlot(_i9.Slot? slot, int? routineId) => + _i13.Future<_i7.Slot> addSlot(_i7.Slot? slot, int? routineId) => (super.noSuchMethod( Invocation.method(#addSlot, [slot, routineId]), - returnValue: _i13.Future<_i9.Slot>.value( - _FakeSlot_9(this, Invocation.method(#addSlot, [slot, routineId])), + returnValue: _i13.Future<_i7.Slot>.value( + _FakeSlot_5(this, Invocation.method(#addSlot, [slot, routineId])), ), ) - as _i13.Future<_i9.Slot>); + as _i13.Future<_i7.Slot>); @override _i13.Future deleteSlot(int? slotId, int? routineId) => @@ -638,7 +367,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future editSlot(_i9.Slot? slot, int? routineId) => + _i13.Future editSlot(_i7.Slot? slot, int? routineId) => (super.noSuchMethod( Invocation.method(#editSlot, [slot, routineId]), returnValue: _i13.Future.value(), @@ -647,7 +376,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future editSlots(List<_i9.Slot>? slots, int? routineId) => + _i13.Future editSlots(List<_i7.Slot>? slots, int? routineId) => (super.noSuchMethod( Invocation.method(#editSlots, [slots, routineId]), returnValue: _i13.Future.value(), @@ -656,20 +385,20 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future<_i10.SlotEntry> addSlotEntry( - _i10.SlotEntry? entry, + _i13.Future<_i8.SlotEntry> addSlotEntry( + _i8.SlotEntry? entry, int? routineId, ) => (super.noSuchMethod( Invocation.method(#addSlotEntry, [entry, routineId]), - returnValue: _i13.Future<_i10.SlotEntry>.value( - _FakeSlotEntry_10( + returnValue: _i13.Future<_i8.SlotEntry>.value( + _FakeSlotEntry_6( this, Invocation.method(#addSlotEntry, [entry, routineId]), ), ), ) - as _i13.Future<_i10.SlotEntry>); + as _i13.Future<_i8.SlotEntry>); @override _i13.Future deleteSlotEntry(int? id, int? routineId) => @@ -681,7 +410,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future editSlotEntry(_i10.SlotEntry? entry, int? routineId) => + _i13.Future editSlotEntry(_i8.SlotEntry? entry, int? routineId) => (super.noSuchMethod( Invocation.method(#editSlotEntry, [entry, routineId]), returnValue: _i13.Future.value(), @@ -690,10 +419,10 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - String getConfigUrl(_i10.ConfigType? type) => + String getConfigUrl(_i8.ConfigType? type) => (super.noSuchMethod( Invocation.method(#getConfigUrl, [type]), - returnValue: _i23.dummyValue( + returnValue: _i15.dummyValue( this, Invocation.method(#getConfigUrl, [type]), ), @@ -701,39 +430,39 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as String); @override - _i13.Future<_i11.BaseConfig> editConfig( - _i11.BaseConfig? config, - _i10.ConfigType? type, + _i13.Future<_i9.BaseConfig> editConfig( + _i9.BaseConfig? config, + _i8.ConfigType? type, ) => (super.noSuchMethod( Invocation.method(#editConfig, [config, type]), - returnValue: _i13.Future<_i11.BaseConfig>.value( - _FakeBaseConfig_11( + returnValue: _i13.Future<_i9.BaseConfig>.value( + _FakeBaseConfig_7( this, Invocation.method(#editConfig, [config, type]), ), ), ) - as _i13.Future<_i11.BaseConfig>); + as _i13.Future<_i9.BaseConfig>); @override - _i13.Future<_i11.BaseConfig> addConfig( - _i11.BaseConfig? config, - _i10.ConfigType? type, + _i13.Future<_i9.BaseConfig> addConfig( + _i9.BaseConfig? config, + _i8.ConfigType? type, ) => (super.noSuchMethod( Invocation.method(#addConfig, [config, type]), - returnValue: _i13.Future<_i11.BaseConfig>.value( - _FakeBaseConfig_11( + returnValue: _i13.Future<_i9.BaseConfig>.value( + _FakeBaseConfig_7( this, Invocation.method(#addConfig, [config, type]), ), ), ) - as _i13.Future<_i11.BaseConfig>); + as _i13.Future<_i9.BaseConfig>); @override - _i13.Future deleteConfig(int? id, _i10.ConfigType? type) => + _i13.Future deleteConfig(int? id, _i8.ConfigType? type) => (super.noSuchMethod( Invocation.method(#deleteConfig, [id, type]), returnValue: _i13.Future.value(), @@ -743,9 +472,9 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { @override _i13.Future handleConfig( - _i10.SlotEntry? entry, + _i8.SlotEntry? entry, num? value, - _i10.ConfigType? type, + _i8.ConfigType? type, ) => (super.noSuchMethod( Invocation.method(#handleConfig, [entry, value, type]), @@ -755,33 +484,33 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - _i13.Future> fetchSessionData() => + _i13.Future> fetchSessionData() => (super.noSuchMethod( Invocation.method(#fetchSessionData, []), - returnValue: _i13.Future>.value( - <_i12.WorkoutSession>[], + returnValue: _i13.Future>.value( + <_i10.WorkoutSession>[], ), ) - as _i13.Future>); + as _i13.Future>); @override - _i13.Future<_i12.WorkoutSession> addSession( - _i12.WorkoutSession? session, + _i13.Future<_i10.WorkoutSession> addSession( + _i10.WorkoutSession? session, int? routineId, ) => (super.noSuchMethod( Invocation.method(#addSession, [session, routineId]), - returnValue: _i13.Future<_i12.WorkoutSession>.value( - _FakeWorkoutSession_12( + returnValue: _i13.Future<_i10.WorkoutSession>.value( + _FakeWorkoutSession_8( this, Invocation.method(#addSession, [session, routineId]), ), ), ) - as _i13.Future<_i12.WorkoutSession>); + as _i13.Future<_i10.WorkoutSession>); @override - _i13.Future editSession(_i12.WorkoutSession? session) => + _i13.Future editSession(_i10.WorkoutSession? session) => (super.noSuchMethod( Invocation.method(#editSession, [session]), returnValue: _i13.Future.value(), @@ -799,13 +528,13 @@ class MockRoutinesProvider extends _i1.Mock implements _i21.RoutinesProvider { as _i13.Future); @override - void addListener(_i20.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method(#addListener, [listener]), returnValueForMissingStub: null, ); @override - void removeListener(_i20.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method(#removeListener, [listener]), returnValueForMissingStub: null, ); diff --git a/test/routine/routine_screen_test.dart b/test/routine/routine_screen_test.dart index 81044bc9..70db19a8 100644 --- a/test/routine/routine_screen_test.dart +++ b/test/routine/routine_screen_test.dart @@ -19,49 +19,49 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart' as riverpod; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; import 'package:provider/provider.dart'; import 'package:wger/l10n/generated/app_localizations.dart'; import 'package:wger/providers/base_provider.dart'; -import 'package:wger/providers/exercises.dart'; import 'package:wger/providers/routines.dart'; import 'package:wger/screens/routine_screen.dart'; +import '../../test_data/exercises.dart'; import '../../test_data/routines.dart'; import 'routine_screen_test.mocks.dart'; @GenerateMocks([WgerBaseProvider]) void main() { final mockBaseProvider = MockWgerBaseProvider(); - final exercisesProvider = ExercisesProvider( - mockBaseProvider, - ); Widget renderWidget({locale = 'en'}) { final key = GlobalKey(); - return ChangeNotifierProvider( - create: (context) => RoutinesProvider( - mockBaseProvider, - exercisesProvider, - [getTestRoutine()], - ), - child: MaterialApp( - locale: Locale(locale), - localizationsDelegates: AppLocalizations.localizationsDelegates, - supportedLocales: AppLocalizations.supportedLocales, - navigatorKey: key, - home: TextButton( - onPressed: () => key.currentState!.push( - MaterialPageRoute( - settings: const RouteSettings(arguments: 1), - builder: (_) => const RoutineScreen(), - ), - ), - child: const SizedBox(), + return riverpod.ProviderScope( + child: ChangeNotifierProvider( + create: (context) => RoutinesProvider( + mockBaseProvider, + entries: [getTestRoutine()], + exercises: getTestExercises(), + ), + child: MaterialApp( + locale: Locale(locale), + localizationsDelegates: AppLocalizations.localizationsDelegates, + supportedLocales: AppLocalizations.supportedLocales, + navigatorKey: key, + home: TextButton( + onPressed: () => key.currentState!.push( + MaterialPageRoute( + settings: const RouteSettings(arguments: 1), + builder: (_) => const RoutineScreen(), + ), + ), + child: const SizedBox(), + ), + routes: {RoutineScreen.routeName: (ctx) => const RoutineScreen()}, ), - routes: {RoutineScreen.routeName: (ctx) => const RoutineScreen()}, ), ); } diff --git a/test/routine/routines_provider_test.dart b/test/routine/routines_provider_test.dart index 4679985c..56792a19 100644 --- a/test/routine/routines_provider_test.dart +++ b/test/routine/routines_provider_test.dart @@ -18,22 +18,16 @@ import 'dart:convert'; -import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:http/http.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; -import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences_platform_interface/in_memory_shared_preferences_async.dart'; import 'package:shared_preferences_platform_interface/shared_preferences_async_platform_interface.dart'; import 'package:wger/core/locator.dart'; import 'package:wger/helpers/consts.dart'; -import 'package:wger/helpers/shared_preferences.dart'; -import 'package:wger/models/workouts/repetition_unit.dart'; import 'package:wger/models/workouts/routine.dart'; -import 'package:wger/models/workouts/weight_unit.dart'; import 'package:wger/providers/base_provider.dart'; -import 'package:wger/providers/exercises.dart'; import 'package:wger/providers/routines.dart'; import '../../test_data/exercises.dart'; @@ -41,7 +35,7 @@ import '../../test_data/routines.dart'; import '../fixtures/fixture_reader.dart'; import 'routines_provider_test.mocks.dart'; -@GenerateMocks([WgerBaseProvider, ExercisesProvider]) +@GenerateMocks([WgerBaseProvider]) void main() { final mockBaseProvider = MockWgerBaseProvider(); @@ -55,8 +49,6 @@ void main() { group('test the workout routine provider', () { test('Test fetching and setting a routine', () async { - final exercisesProvider = ExercisesProvider(mockBaseProvider); - final uri = Uri.https('localhost', 'api/v2/routine/325397/'); when( mockBaseProvider.makeUrl('routine', id: 325397, query: {'limit': API_MAX_PAGE_SIZE}), @@ -74,7 +66,7 @@ void main() { ); // Load the entries - final provider = RoutinesProvider(mockBaseProvider, exercisesProvider, []); + final provider = RoutinesProvider(mockBaseProvider, exercises: getTestExercises()); final plan = await provider.fetchAndSetRoutineSparse(325397); final plans = provider.getPlans(); @@ -86,7 +78,6 @@ void main() { }); test('Test deleting a workout plan', () async { - final exercisesProvider = ExercisesProvider(mockBaseProvider); final uri = Uri.https('localhost', 'api/v2/workout/325397/'); when(mockBaseProvider.makeUrl('workout', id: 325397)).thenReturn(uri); when(mockBaseProvider.fetch(uri)).thenAnswer( @@ -102,7 +93,7 @@ void main() { ); // Load the entries - final provider = RoutinesProvider(mockBaseProvider, exercisesProvider, []); + final provider = RoutinesProvider(mockBaseProvider, exercises: getTestExercises()); await provider.fetchAndSetRoutineSparse(325397); await provider.deleteRoutine(325397); @@ -110,74 +101,6 @@ void main() { expect(plans.length, 0); }); - test('Test that fetch and set repetition units for workout', () async { - final exercisesProvider = ExercisesProvider(mockBaseProvider); - - final uri = Uri.https('localhost', 'api/v2/setting-repetitionunit/'); - final tRepetitionUnits = jsonDecode(fixture('routines/repetition_units.json')); - when(mockBaseProvider.makeUrl('setting-repetitionunit')).thenReturn(uri); - when( - mockBaseProvider.fetchPaginated(uri), - ).thenAnswer((_) => Future.value(tRepetitionUnits['results'])); - - // Load the entries - final provider = RoutinesProvider(mockBaseProvider, exercisesProvider, []); - await provider.fetchAndSetRepetitionUnits(); - final repetitionUnits = provider.repetitionUnits; - - expect(repetitionUnits, isA>()); - expect(repetitionUnits.length, 7); - }); - test('Test that fetch and set weight units for workout', () async { - final uri = Uri.https('localhost', 'api/v2/setting-weightunit/'); - when(mockBaseProvider.makeUrl('setting-weightunit')).thenReturn(uri); - final tWeightUnits = jsonDecode(fixture('routines/weight_units.json')); - when( - mockBaseProvider.fetchPaginated(uri), - ).thenAnswer((_) => Future.value(tWeightUnits['results'])); - - final ExercisesProvider testExercisesProvider = ExercisesProvider(mockBaseProvider); - - // Load the entries - final provider = RoutinesProvider(mockBaseProvider, testExercisesProvider, []); - await provider.fetchAndSetWeightUnits(); - final weightUnits = provider.weightUnits; - - expect(weightUnits, isA>()); - expect(weightUnits.length, 6); - }); - - test('Test that fetch and set both type of units', () async { - final weightUri = Uri.https('localhost', 'api/v2/setting-weightunit/'); - when(mockBaseProvider.makeUrl('setting-weightunit')).thenReturn(weightUri); - final tWeightUnits = jsonDecode(fixture('routines/weight_units.json')); - when( - mockBaseProvider.fetchPaginated(weightUri), - ).thenAnswer((_) => Future.value(tWeightUnits['results'])); - - final repUnit = Uri.https('localhost', 'api/v2/setting-repetitionunit/'); - final tRepetitionUnits = jsonDecode(fixture('routines/repetition_units.json')); - when(mockBaseProvider.makeUrl('setting-repetitionunit')).thenReturn(repUnit); - when( - mockBaseProvider.fetchPaginated(repUnit), - ).thenAnswer((_) => Future.value(tRepetitionUnits['results'])); - - final exercisesProvider = ExercisesProvider(mockBaseProvider); - WidgetsFlutterBinding.ensureInitialized(); - SharedPreferences.setMockInitialValues({}); - final prefs = PreferenceHelper.asyncPref; - - // Load the entries - final provider = RoutinesProvider(mockBaseProvider, exercisesProvider, []); - await provider.fetchAndSetUnits(); - final prefsJson = jsonDecode((await prefs.getString(PREFS_WORKOUT_UNITS))!); - - expect(prefsJson['repetitionUnits'].length, 7); - expect(prefsJson['weightUnit'].length, 6); - expect(true, DateTime.parse(prefsJson['date']).isBefore(DateTime.now())); - expect(true, DateTime.parse(prefsJson['expiresIn']).isAfter(DateTime.now())); - }); - test('Smoke test fetchAndSetRoutineFull', () async { //Arrange final structureUri = Uri.https('localhost', 'api/v2/routine/101/structure/'); @@ -221,17 +144,12 @@ void main() { ), ); - final mockExercisesProvider = MockExercisesProvider(); - when(mockExercisesProvider.fetchAndSetExercise(76)).thenAnswer( - (_) async => Future.value(testBenchPress), + final provider = RoutinesProvider( + mockBaseProvider, + exercises: getTestExercises(), + repetitionUnits: testRepetitionUnits, + weightUnits: testWeightUnits, ); - when(mockExercisesProvider.fetchAndSetExercise(92)).thenAnswer( - (_) async => Future.value(testCrunches), - ); - - final provider = RoutinesProvider(mockBaseProvider, mockExercisesProvider, []); - provider.repetitionUnits = testRepetitionUnits; - provider.weightUnits = testWeightUnits; // Act final result = await provider.fetchAndSetRoutineFull(101); diff --git a/test/routine/routines_provider_test.mocks.dart b/test/routine/routines_provider_test.mocks.dart index 2a90f40e..ffba0b7c 100644 --- a/test/routine/routines_provider_test.mocks.dart +++ b/test/routine/routines_provider_test.mocks.dart @@ -4,18 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; -import 'dart:ui' as _i12; import 'package:http/http.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; -import 'package:wger/models/exercises/category.dart' as _i8; -import 'package:wger/models/exercises/equipment.dart' as _i10; -import 'package:wger/models/exercises/exercise.dart' as _i7; -import 'package:wger/models/exercises/language.dart' as _i11; -import 'package:wger/models/exercises/muscle.dart' as _i9; import 'package:wger/providers/auth.dart' as _i2; import 'package:wger/providers/base_provider.dart' as _i4; -import 'package:wger/providers/exercises.dart' as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -47,11 +40,6 @@ class _FakeResponse_3 extends _i1.SmartFake implements _i3.Response { _FakeResponse_3(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeWgerBaseProvider_4 extends _i1.SmartFake implements _i4.WgerBaseProvider { - _FakeWgerBaseProvider_4(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); -} - /// A class which mocks [WgerBaseProvider]. /// /// See the documentation for Mockito's code generation for more information. @@ -174,125 +162,3 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ) as _i5.Future<_i3.Response>); } - -/// A class which mocks [ExercisesProvider]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockExercisesProvider extends _i1.Mock implements _i6.ExercisesProvider { - MockExercisesProvider() { - _i1.throwOnMissingStub(this); - } - - @override - _i4.WgerBaseProvider get baseProvider => - (super.noSuchMethod( - Invocation.getter(#baseProvider), - returnValue: _FakeWgerBaseProvider_4( - this, - Invocation.getter(#baseProvider), - ), - ) - as _i4.WgerBaseProvider); - - @override - List<_i7.Exercise> get exercises => - (super.noSuchMethod( - Invocation.getter(#exercises), - returnValue: <_i7.Exercise>[], - ) - as List<_i7.Exercise>); - - @override - Map> get exerciseByVariation => - (super.noSuchMethod( - Invocation.getter(#exerciseByVariation), - returnValue: >{}, - ) - as Map>); - - @override - List<_i8.ExerciseCategory> get categories => - (super.noSuchMethod( - Invocation.getter(#categories), - returnValue: <_i8.ExerciseCategory>[], - ) - as List<_i8.ExerciseCategory>); - - @override - List<_i9.Muscle> get muscles => - (super.noSuchMethod( - Invocation.getter(#muscles), - returnValue: <_i9.Muscle>[], - ) - as List<_i9.Muscle>); - - @override - List<_i10.Equipment> get equipment => - (super.noSuchMethod( - Invocation.getter(#equipment), - returnValue: <_i10.Equipment>[], - ) - as List<_i10.Equipment>); - - @override - List<_i11.Language> get languages => - (super.noSuchMethod( - Invocation.getter(#languages), - returnValue: <_i11.Language>[], - ) - as List<_i11.Language>); - - @override - set exercises(List<_i7.Exercise>? _exercises) => super.noSuchMethod( - Invocation.setter(#exercises, _exercises), - returnValueForMissingStub: null, - ); - - @override - set languages(List<_i11.Language>? languages) => super.noSuchMethod( - Invocation.setter(#languages, languages), - returnValueForMissingStub: null, - ); - - @override - bool get hasListeners => - (super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool); - - @override - void clear() => super.noSuchMethod( - Invocation.method(#clear, []), - returnValueForMissingStub: null, - ); - - @override - _i5.Future<_i7.Exercise?> fetchAndSetExercise(int? exerciseId) => - (super.noSuchMethod( - Invocation.method(#fetchAndSetExercise, [exerciseId]), - returnValue: _i5.Future<_i7.Exercise?>.value(), - ) - as _i5.Future<_i7.Exercise?>); - - @override - void addListener(_i12.VoidCallback? listener) => super.noSuchMethod( - Invocation.method(#addListener, [listener]), - returnValueForMissingStub: null, - ); - - @override - void removeListener(_i12.VoidCallback? listener) => super.noSuchMethod( - Invocation.method(#removeListener, [listener]), - returnValueForMissingStub: null, - ); - - @override - void dispose() => super.noSuchMethod( - Invocation.method(#dispose, []), - returnValueForMissingStub: null, - ); - - @override - void notifyListeners() => super.noSuchMethod( - Invocation.method(#notifyListeners, []), - returnValueForMissingStub: null, - ); -}