From a853e4510740b9ec4e5bbead37878f6ba7df5a7d Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Wed, 27 Aug 2025 18:52:54 +0200 Subject: [PATCH] Optimize fetching exercises from the server This might be the reason behind wger-project/wger#2028 since depending on the routine the server could get hammered with requests and one (or other unrelated ones) fail. Even if this is not the case, being a bit more reserved here is still a good idea. --- lib/providers/routines.dart | 43 ++++++++++++++----- test/routine/day_form_test.mocks.dart | 18 +++++--- .../forms/session_form_test.mocks.dart | 18 +++++--- .../gym_mode_session_screen_test.mocks.dart | 18 +++++--- ...epetition_unit_form_widget_test.mocks.dart | 18 +++++--- .../routine_edit_screen_test.mocks.dart | 18 +++++--- test/routine/routine_edit_test.mocks.dart | 18 +++++--- test/routine/routine_form_test.mocks.dart | 18 +++++--- .../routine_logs_screen_test.mocks.dart | 18 +++++--- test/routine/slot_entry_form_test.mocks.dart | 18 +++++--- .../weight_unit_form_widget_test.mocks.dart | 18 +++++--- 11 files changed, 153 insertions(+), 70 deletions(-) diff --git a/lib/providers/routines.dart b/lib/providers/routines.dart index 16535d6e..a2d9a192 100644 --- a/lib/providers/routines.dart +++ b/lib/providers/routines.dart @@ -23,6 +23,7 @@ import 'package:logging/logging.dart'; import 'package:wger/exceptions/http_exception.dart'; import 'package:wger/helpers/consts.dart'; import 'package:wger/helpers/shared_preferences.dart'; +import 'package:wger/models/exercises/exercise.dart'; import 'package:wger/models/workouts/base_config.dart'; import 'package:wger/models/workouts/day.dart'; import 'package:wger/models/workouts/day_data.dart'; @@ -64,7 +65,7 @@ class RoutinesProvider with ChangeNotifier { static const _routineConfigMaxRestTime = 'max-rest-config'; Routine? activeRoutine; - late ExercisesProvider _exerciseProvider; + final ExercisesProvider _exerciseProvider; final WgerBaseProvider baseProvider; List _routines = []; List _weightUnits = []; @@ -72,12 +73,11 @@ class RoutinesProvider with ChangeNotifier { RoutinesProvider( this.baseProvider, - ExercisesProvider exercises, + this._exerciseProvider, List entries, { List? weightUnits, List? repetitionUnits, }) { - _exerciseProvider = exercises; _routines = entries; _weightUnits = weightUnits ?? []; _repetitionUnits = repetitionUnits ?? []; @@ -185,11 +185,18 @@ class RoutinesProvider with ChangeNotifier { notifyListeners(); } - Future setExercisesAndUnits(List entries) async { + Future setExercisesAndUnits(List entries, {Map? exercises}) async { + exercises ??= {}; + for (final entry in entries) { for (final slot in entry.slots) { for (final setConfig in slot.setConfigs) { - setConfig.exercise = (await _exerciseProvider.fetchAndSetExercise(setConfig.exerciseId))!; + final exerciseId = setConfig.exerciseId; + if (!exercises.containsKey(exerciseId)) { + _logger.fine('Fetching exercise $exerciseId for routine set config'); + exercises[exerciseId] = (await _exerciseProvider.fetchAndSetExercise(exerciseId))!; + } + setConfig.exercise = exercises[exerciseId]!; setConfig.repetitionsUnit = _repetitionUnits.firstWhere( (e) => e.id == setConfig.repetitionsUnitId, @@ -262,11 +269,15 @@ class RoutinesProvider with ChangeNotifier { * * note that setExercisesAndUnits modifies the list in-place */ + + /// Temporary cache to avoid fetching the same exercise multiple times + final Map exercises = {}; + final dayDataEntriesDisplay = dayData.map((entry) => DayData.fromJson(entry)).toList(); - await setExercisesAndUnits(dayDataEntriesDisplay); + await setExercisesAndUnits(dayDataEntriesDisplay, exercises: exercises); final dayDataEntriesGym = dayDataGym.map((entry) => DayData.fromJson(entry)).toList(); - await setExercisesAndUnits(dayDataEntriesGym); + await setExercisesAndUnits(dayDataEntriesGym, exercises: exercises); final sessionDataEntries = sessionData.map((entry) => WorkoutSessionApi.fromJson(entry)).toList(); @@ -274,13 +285,18 @@ class RoutinesProvider with ChangeNotifier { for (final day in routine.days) { for (final slot in day.slots) { for (final slotEntry in slot.entries) { - slotEntry.exerciseObj = - (await _exerciseProvider.fetchAndSetExercise(slotEntry.exerciseId))!; + final exerciseId = slotEntry.exerciseId; + if (!exercises.containsKey(exerciseId)) { + exercises[exerciseId] = (await _exerciseProvider.fetchAndSetExercise(exerciseId))!; + } + slotEntry.exerciseObj = exercises[exerciseId]!; + if (slotEntry.repetitionUnitId != null) { slotEntry.repetitionUnitObj = _repetitionUnits.firstWhere( (e) => e.id == slotEntry.repetitionUnitId, ); } + if (slotEntry.weightUnitId != null) { slotEntry.weightUnitObj = _weightUnits.firstWhere( (e) => e.id == slotEntry.weightUnitId, @@ -300,10 +316,17 @@ class RoutinesProvider with ChangeNotifier { if (log.weightUnitId != null) { log.weightUnit = _weightUnits.firstWhere((e) => e.id == log.weightUnitId); } + if (log.repetitionsUnitId != null) { log.repetitionUnit = _repetitionUnits.firstWhere((e) => e.id == log.repetitionsUnitId); } - log.exerciseBase = (await _exerciseProvider.fetchAndSetExercise(log.exerciseId))!; + + if (!exercises.containsKey(log.exerciseId)) { + exercises[log.exerciseId] = + (await _exerciseProvider.fetchAndSetExercise(log.exerciseId))!; + } + + log.exerciseBase = exercises[log.exerciseId]!; } } diff --git a/test/routine/day_form_test.mocks.dart b/test/routine/day_form_test.mocks.dart index 377e8f73..45d67cb1 100644 --- a/test/routine/day_form_test.mocks.dart +++ b/test/routine/day_form_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/forms/session_form_test.mocks.dart b/test/routine/forms/session_form_test.mocks.dart index 07dc9804..68bc92d3 100644 --- a/test/routine/forms/session_form_test.mocks.dart +++ b/test/routine/forms/session_form_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/gym_mode_session_screen_test.mocks.dart b/test/routine/gym_mode_session_screen_test.mocks.dart index e4dc9ade..d45aabfb 100644 --- a/test/routine/gym_mode_session_screen_test.mocks.dart +++ b/test/routine/gym_mode_session_screen_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/repetition_unit_form_widget_test.mocks.dart b/test/routine/repetition_unit_form_widget_test.mocks.dart index b871226c..539db43d 100644 --- a/test/routine/repetition_unit_form_widget_test.mocks.dart +++ b/test/routine/repetition_unit_form_widget_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/routine_edit_screen_test.mocks.dart b/test/routine/routine_edit_screen_test.mocks.dart index e529f695..ce8ce0d6 100644 --- a/test/routine/routine_edit_screen_test.mocks.dart +++ b/test/routine/routine_edit_screen_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/routine_edit_test.mocks.dart b/test/routine/routine_edit_test.mocks.dart index bf058cb2..78ce146e 100644 --- a/test/routine/routine_edit_test.mocks.dart +++ b/test/routine/routine_edit_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/routine_form_test.mocks.dart b/test/routine/routine_form_test.mocks.dart index 7c984f8c..48438fa8 100644 --- a/test/routine/routine_form_test.mocks.dart +++ b/test/routine/routine_form_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/routine_logs_screen_test.mocks.dart b/test/routine/routine_logs_screen_test.mocks.dart index ebdaa4d6..23e1a83a 100644 --- a/test/routine/routine_logs_screen_test.mocks.dart +++ b/test/routine/routine_logs_screen_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/slot_entry_form_test.mocks.dart b/test/routine/slot_entry_form_test.mocks.dart index f17323b3..5a00cd20 100644 --- a/test/routine/slot_entry_form_test.mocks.dart +++ b/test/routine/slot_entry_form_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/routine/weight_unit_form_widget_test.mocks.dart b/test/routine/weight_unit_form_widget_test.mocks.dart index 357e8be1..daf91fde 100644 --- a/test/routine/weight_unit_form_widget_test.mocks.dart +++ b/test/routine/weight_unit_form_widget_test.mocks.dart @@ -4,10 +4,11 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i13; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i15; +import 'package:mockito/src/dummies.dart' as _i16; +import 'package:wger/models/exercises/exercise.dart' as _i15; 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; @@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - _i13.Future setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod( + _i13.Future setExercisesAndUnits( + List<_i14.DayData>? entries, { + Map? exercises, + }) => + (super.noSuchMethod( Invocation.method( #setExercisesAndUnits, [entries], + {#exercises: exercises}, ), returnValue: _i13.Future.value(), returnValueForMissingStub: _i13.Future.value(), @@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { #getConfigUrl, [type], ), - returnValue: _i15.dummyValue( + returnValue: _i16.dummyValue( this, Invocation.method( #getConfigUrl, @@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ) as _i13.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider { ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener],