From c2f138cf9f76683151ccd70424528e1b7743e5af Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Fri, 30 Jan 2026 12:52:34 +0100 Subject: [PATCH] Increase timeout durations for API requests --- lib/providers/base_provider.dart | 15 ++++--- lib/providers/exercises.dart | 8 +++- lib/providers/gym_log_state.g.dart | 2 +- lib/providers/nutrition.dart | 5 ++- ...tings_dashboard_visibility_test.mocks.dart | 14 +++++- test/core/settings_test.mocks.dart | 44 +++++++++---------- .../contribute_exercise_image_test.mocks.dart | 14 +++++- .../contribute_exercise_test.mocks.dart | 30 +++++-------- test/exercises/exercise_provider_db_test.dart | 8 ++-- .../exercises_detail_widget_test.mocks.dart | 2 +- test/gallery/gallery_form_test.mocks.dart | 14 +++++- test/gallery/gallery_screen_test.mocks.dart | 14 +++++- .../measurement_provider_test.mocks.dart | 14 +++++- .../nutritional_plan_screen_test.mocks.dart | 14 +++++- .../nutritional_plans_screen_test.mocks.dart | 14 +++++- .../routine/gym_mode/gym_mode_test.mocks.dart | 16 +++++-- test/routine/routine_screen_test.mocks.dart | 14 +++++- .../routine/routines_provider_test.mocks.dart | 16 +++++-- test/routine/routines_screen_test.mocks.dart | 14 +++++- .../trophies_provider_test.mocks.dart | 14 +++++- test/user/provider_test.mocks.dart | 14 +++++- test/weight/weight_provider_test.mocks.dart | 14 +++++- test/weight/weight_screen_test.mocks.dart | 28 ++++-------- .../gym_mode/log_page_test.mocks.dart | 2 +- 24 files changed, 238 insertions(+), 106 deletions(-) diff --git a/lib/providers/base_provider.dart b/lib/providers/base_provider.dart index 041871ae..047a0bf6 100644 --- a/lib/providers/base_provider.dart +++ b/lib/providers/base_provider.dart @@ -28,8 +28,8 @@ import 'package:wger/core/exceptions/http_exception.dart'; import 'package:wger/providers/auth.dart'; import 'package:wger/providers/helpers.dart'; -/// initial delay for fetch retries, in milliseconds -const FETCH_INITIAL_DELAY = 250; +/// default timeout for GET requests +const DEFAULT_TIMEOUT = Duration(seconds: 5); /// Base provider class. /// @@ -73,6 +73,7 @@ class WgerBaseProvider { Uri uri, { int maxRetries = 3, Duration initialDelay = const Duration(milliseconds: 250), + Duration timeout = DEFAULT_TIMEOUT, String? language, }) async { int attempt = 0; @@ -91,7 +92,7 @@ class WgerBaseProvider { try { final response = await client .get(uri, headers: getDefaultHeaders(includeAuth: true, language: language)) - .timeout(const Duration(seconds: 5)); + .timeout(timeout); if (response.statusCode >= 400) { // Retry on server errors (5xx); e.g. 502 might be transient @@ -119,13 +120,17 @@ class WgerBaseProvider { } /// Fetch and retrieve the overview list of objects, returns the JSON parsed response - Future> fetchPaginated(Uri uri, {String? language}) async { + Future> fetchPaginated( + Uri uri, { + String? language, + Duration timeout = DEFAULT_TIMEOUT, + }) async { final out = []; var url = uri; var allPagesProcessed = false; while (!allPagesProcessed) { - final data = await fetch(url, language: language); + final data = await fetch(url, language: language, timeout: timeout); data['results'].forEach((e) => out.add(e)); diff --git a/lib/providers/exercises.dart b/lib/providers/exercises.dart index 4e87cf16..7cb01f10 100644 --- a/lib/providers/exercises.dart +++ b/lib/providers/exercises.dart @@ -292,6 +292,7 @@ class ExercisesProvider with ChangeNotifier { _logger.info('Loading all exercises from API'); final exerciseData = await baseProvider.fetchPaginated( baseProvider.makeUrl(exerciseUrlPath, query: {'limit': API_MAX_PAGE_SIZE}), + timeout: const Duration(seconds: 15), // just in case ); final exerciseIds = exerciseData.map((e) => e['id'] as int).toSet(); @@ -362,8 +363,13 @@ class ExercisesProvider with ChangeNotifier { 'Re-fetching exercise $exerciseId from API since last fetch was ${exerciseDb.lastFetched}', ); + // Note: we set a very long timeout here since the exercise api endpoint might + // take a long time to load if the exercise data has not been cached yet. A test + // on a raspberry pi showed that this can take up to 45 seconds, so one minute + // should be safe. final apiData = await baseProvider.fetch( baseProvider.makeUrl(exerciseInfoUrlPath, id: exerciseId), + timeout: const Duration(seconds: 60), ); final exerciseApiData = ExerciseApiData.fromJson(apiData); @@ -419,7 +425,7 @@ class ExercisesProvider with ChangeNotifier { return exercise; } - Future initCacheTimesLocalPrefs({forceInit = false}) async { + Future initCacheTimesLocalPrefs({bool forceInit = false}) async { final prefs = PreferenceHelper.asyncPref; final initDate = DateTime(2023, 1, 1).toIso8601String(); diff --git a/lib/providers/gym_log_state.g.dart b/lib/providers/gym_log_state.g.dart index b2d45a45..ffedf640 100644 --- a/lib/providers/gym_log_state.g.dart +++ b/lib/providers/gym_log_state.g.dart @@ -40,7 +40,7 @@ final class GymLogNotifierProvider extends $NotifierProvider r'4523975eeeaacceca4e86fb2e4ddd9a42c263d8e'; +String _$gymLogNotifierHash() => r'5e166c827248e02d55279c7022a4c5a670e9b3dc'; abstract class _$GymLogNotifier extends $Notifier { Log? build(); diff --git a/lib/providers/nutrition.dart b/lib/providers/nutrition.dart index 3ec50f80..00346bd3 100644 --- a/lib/providers/nutrition.dart +++ b/lib/providers/nutrition.dart @@ -1,6 +1,6 @@ /* * This file is part of wger Workout Manager . - * Copyright (C) 2020, 2021 wger Team + * Copyright (c) 2026 wger Team * * wger Workout Manager is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -399,7 +399,7 @@ class NutritionPlansProvider with ChangeNotifier { } // Send the request - _logger.info("Fetching ingredients from server"); + _logger.info('Fetching ingredients from server'); final response = await baseProvider.fetch( baseProvider.makeUrl( _ingredientInfoPath, @@ -409,6 +409,7 @@ class NutritionPlansProvider with ChangeNotifier { 'limit': API_RESULTS_PAGE_SIZE, }, ), + timeout: const Duration(seconds: 10), ); return (response['results'] as List) diff --git a/test/core/settings_dashboard_visibility_test.mocks.dart b/test/core/settings_dashboard_visibility_test.mocks.dart index bc9ac783..8ea13e2a 100644 --- a/test/core/settings_dashboard_visibility_test.mocks.dart +++ b/test/core/settings_dashboard_visibility_test.mocks.dart @@ -120,6 +120,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -129,6 +130,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -137,9 +139,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/core/settings_test.mocks.dart b/test/core/settings_test.mocks.dart index 19b552e4..583ecbb7 100644 --- a/test/core/settings_test.mocks.dart +++ b/test/core/settings_test.mocks.dart @@ -1,21 +1,3 @@ -/* - * This file is part of wger Workout Manager . - * Copyright (c) 2026 wger Team - * - * wger Workout Manager is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - // Mocks generated by Mockito 5.4.6 from annotations // in wger/test/core/settings_test.dart. // Do not manually edit this file. @@ -426,7 +408,7 @@ class MockExercisesProvider extends _i1.Mock implements _i17.ExercisesProvider { as _i18.Future<_i4.Exercise>); @override - _i18.Future initCacheTimesLocalPrefs({dynamic forceInit = false}) => + _i18.Future initCacheTimesLocalPrefs({bool? forceInit = false}) => (super.noSuchMethod( Invocation.method(#initCacheTimesLocalPrefs, [], { #forceInit: forceInit, @@ -964,7 +946,15 @@ class MockUserProvider extends _i1.Mock implements _i21.UserProvider { @override List<_i21.DashboardWidget> get dashboardWidgets => (super.noSuchMethod( - Invocation.getter(#dashboardOrder), + Invocation.getter(#dashboardWidgets), + returnValue: <_i21.DashboardWidget>[], + ) + as List<_i21.DashboardWidget>); + + @override + List<_i21.DashboardWidget> get allDashboardWidgets => + (super.noSuchMethod( + Invocation.getter(#allDashboardWidgets), returnValue: <_i21.DashboardWidget>[], ) as List<_i21.DashboardWidget>); @@ -1163,6 +1153,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -1172,6 +1163,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -1180,9 +1172,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { as _i18.Future); @override - _i18.Future> fetchPaginated(Uri? uri, {String? language}) => + _i18.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i18.Future>.value([]), ) as _i18.Future>); diff --git a/test/exercises/contribute_exercise_image_test.mocks.dart b/test/exercises/contribute_exercise_image_test.mocks.dart index 58b8b260..8d872c5a 100644 --- a/test/exercises/contribute_exercise_image_test.mocks.dart +++ b/test/exercises/contribute_exercise_image_test.mocks.dart @@ -410,6 +410,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -419,6 +420,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -427,9 +429,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { as _i14.Future); @override - _i14.Future> fetchPaginated(Uri? uri, {String? language}) => + _i14.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i14.Future>.value([]), ) as _i14.Future>); diff --git a/test/exercises/contribute_exercise_test.mocks.dart b/test/exercises/contribute_exercise_test.mocks.dart index e57f7393..4d321ea2 100644 --- a/test/exercises/contribute_exercise_test.mocks.dart +++ b/test/exercises/contribute_exercise_test.mocks.dart @@ -1,21 +1,3 @@ -/* - * This file is part of wger Workout Manager . - * Copyright (c) 2026 wger Team - * - * wger Workout Manager is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - // Mocks generated by Mockito 5.4.6 from annotations // in wger/test/exercises/contribute_exercise_test.dart. // Do not manually edit this file. @@ -410,7 +392,15 @@ class MockUserProvider extends _i1.Mock implements _i17.UserProvider { @override List<_i17.DashboardWidget> get dashboardWidgets => (super.noSuchMethod( - Invocation.getter(#dashboardOrder), + Invocation.getter(#dashboardWidgets), + returnValue: <_i17.DashboardWidget>[], + ) + as List<_i17.DashboardWidget>); + + @override + List<_i17.DashboardWidget> get allDashboardWidgets => + (super.noSuchMethod( + Invocation.getter(#allDashboardWidgets), returnValue: <_i17.DashboardWidget>[], ) as List<_i17.DashboardWidget>); @@ -820,7 +810,7 @@ class MockExercisesProvider extends _i1.Mock implements _i20.ExercisesProvider { as _i15.Future<_i6.Exercise>); @override - _i15.Future initCacheTimesLocalPrefs({dynamic forceInit = false}) => + _i15.Future initCacheTimesLocalPrefs({bool? forceInit = false}) => (super.noSuchMethod( Invocation.method(#initCacheTimesLocalPrefs, [], { #forceInit: forceInit, diff --git a/test/exercises/exercise_provider_db_test.dart b/test/exercises/exercise_provider_db_test.dart index 2d0c1f8b..7a6b0193 100644 --- a/test/exercises/exercise_provider_db_test.dart +++ b/test/exercises/exercise_provider_db_test.dart @@ -151,12 +151,12 @@ void main() { // Mock base info response when(mockBaseProvider.makeUrl(exerciseInfoUrl)).thenReturn(tExerciseInfoUri); - when(mockBaseProvider.fetch(tExerciseInfoUri)).thenAnswer( + when(mockBaseProvider.fetch(tExerciseInfoUri, timeout: anyNamed('timeout'))).thenAnswer( (_) => Future.value(tExerciseInfoMap), ); when(mockBaseProvider.makeUrl(exerciseInfoUrl, id: 9)).thenReturn(tExerciseInfoDetailUri); - when(mockBaseProvider.fetch(tExerciseInfoDetailUri)).thenAnswer( + when(mockBaseProvider.fetch(tExerciseInfoDetailUri, timeout: anyNamed('timeout'))).thenAnswer( (_) => Future.value(tExerciseInfoMap), ); }); @@ -504,7 +504,7 @@ void main() { )..where((e) => e.id.equals(9))).getSingleOrNull(); // Assert - verify(mockBaseProvider.fetch(any)); + verify(mockBaseProvider.fetch(any, timeout: anyNamed('timeout'))); expect(provider.exercises.length, 1); expect(provider.exercises.first.id, 9); expect(provider.exercises.first.uuid, '1b020b3a-3732-4c7e-92fd-a0cec90ed69b'); @@ -539,7 +539,7 @@ void main() { final exerciseData = ExerciseApiData.fromString(exerciseDb!.data); // Assert - verify(mockBaseProvider.fetch(any)); + verify(mockBaseProvider.fetch(any, timeout: anyNamed('timeout'))); expect(provider.exercises.length, 1); expect(provider.exercises.first.id, 9); expect(provider.exercises.first.uuid, '1b020b3a-3732-4c7e-92fd-a0cec90ed69b'); diff --git a/test/exercises/exercises_detail_widget_test.mocks.dart b/test/exercises/exercises_detail_widget_test.mocks.dart index 00197a34..f340ea63 100644 --- a/test/exercises/exercises_detail_widget_test.mocks.dart +++ b/test/exercises/exercises_detail_widget_test.mocks.dart @@ -352,7 +352,7 @@ class MockExercisesProvider extends _i1.Mock implements _i9.ExercisesProvider { as _i10.Future<_i4.Exercise>); @override - _i10.Future initCacheTimesLocalPrefs({dynamic forceInit = false}) => + _i10.Future initCacheTimesLocalPrefs({bool? forceInit = false}) => (super.noSuchMethod( Invocation.method(#initCacheTimesLocalPrefs, [], { #forceInit: forceInit, diff --git a/test/gallery/gallery_form_test.mocks.dart b/test/gallery/gallery_form_test.mocks.dart index 5e048896..e6ef2a82 100644 --- a/test/gallery/gallery_form_test.mocks.dart +++ b/test/gallery/gallery_form_test.mocks.dart @@ -183,6 +183,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -192,6 +193,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -200,9 +202,17 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { as _i6.Future); @override - _i6.Future> fetchPaginated(Uri? uri, {String? language}) => + _i6.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i6.Future>.value([]), ) as _i6.Future>); diff --git a/test/gallery/gallery_screen_test.mocks.dart b/test/gallery/gallery_screen_test.mocks.dart index 9b6edcbd..a2236b77 100644 --- a/test/gallery/gallery_screen_test.mocks.dart +++ b/test/gallery/gallery_screen_test.mocks.dart @@ -183,6 +183,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -192,6 +193,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -200,9 +202,17 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { as _i6.Future); @override - _i6.Future> fetchPaginated(Uri? uri, {String? language}) => + _i6.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i6.Future>.value([]), ) as _i6.Future>); diff --git a/test/measurements/measurement_provider_test.mocks.dart b/test/measurements/measurement_provider_test.mocks.dart index b5127325..1f2cd16e 100644 --- a/test/measurements/measurement_provider_test.mocks.dart +++ b/test/measurements/measurement_provider_test.mocks.dart @@ -120,6 +120,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -129,6 +130,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -137,9 +139,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/nutrition/nutritional_plan_screen_test.mocks.dart b/test/nutrition/nutritional_plan_screen_test.mocks.dart index 0ed491a6..5cbdb1a0 100644 --- a/test/nutrition/nutritional_plan_screen_test.mocks.dart +++ b/test/nutrition/nutritional_plan_screen_test.mocks.dart @@ -130,6 +130,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -139,6 +140,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -147,9 +149,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/nutrition/nutritional_plans_screen_test.mocks.dart b/test/nutrition/nutritional_plans_screen_test.mocks.dart index 7fa3dec2..18c30c3b 100644 --- a/test/nutrition/nutritional_plans_screen_test.mocks.dart +++ b/test/nutrition/nutritional_plans_screen_test.mocks.dart @@ -365,6 +365,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i8.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -374,6 +375,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i8.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -382,9 +384,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i8.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/routine/gym_mode/gym_mode_test.mocks.dart b/test/routine/gym_mode/gym_mode_test.mocks.dart index 8d17cc4f..8924daed 100644 --- a/test/routine/gym_mode/gym_mode_test.mocks.dart +++ b/test/routine/gym_mode/gym_mode_test.mocks.dart @@ -209,6 +209,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -218,6 +219,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -226,9 +228,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i20.Future); @override - _i20.Future> fetchPaginated(Uri? uri, {String? language}) => + _i20.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i20.Future>.value([]), ) as _i20.Future>); @@ -563,7 +573,7 @@ class MockExercisesProvider extends _i1.Mock implements _i21.ExercisesProvider { as _i20.Future<_i6.Exercise>); @override - _i20.Future initCacheTimesLocalPrefs({dynamic forceInit = false}) => + _i20.Future initCacheTimesLocalPrefs({bool? forceInit = false}) => (super.noSuchMethod( Invocation.method(#initCacheTimesLocalPrefs, [], { #forceInit: forceInit, diff --git a/test/routine/routine_screen_test.mocks.dart b/test/routine/routine_screen_test.mocks.dart index 8a11f7d1..5ef17e3a 100644 --- a/test/routine/routine_screen_test.mocks.dart +++ b/test/routine/routine_screen_test.mocks.dart @@ -120,6 +120,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -129,6 +130,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -137,9 +139,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/routine/routines_provider_test.mocks.dart b/test/routine/routines_provider_test.mocks.dart index e70a0c48..84263f15 100644 --- a/test/routine/routines_provider_test.mocks.dart +++ b/test/routine/routines_provider_test.mocks.dart @@ -159,6 +159,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -168,6 +169,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -176,9 +178,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i11.Future); @override - _i11.Future> fetchPaginated(Uri? uri, {String? language}) => + _i11.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i11.Future>.value([]), ) as _i11.Future>); @@ -513,7 +523,7 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider { as _i11.Future<_i6.Exercise>); @override - _i11.Future initCacheTimesLocalPrefs({dynamic forceInit = false}) => + _i11.Future initCacheTimesLocalPrefs({bool? forceInit = false}) => (super.noSuchMethod( Invocation.method(#initCacheTimesLocalPrefs, [], { #forceInit: forceInit, diff --git a/test/routine/routines_screen_test.mocks.dart b/test/routine/routines_screen_test.mocks.dart index 5502f3a0..b8d82b18 100644 --- a/test/routine/routines_screen_test.mocks.dart +++ b/test/routine/routines_screen_test.mocks.dart @@ -120,6 +120,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -129,6 +130,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -137,9 +139,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/trophies/provider/trophies_provider_test.mocks.dart b/test/trophies/provider/trophies_provider_test.mocks.dart index 15b59d6e..24a62936 100644 --- a/test/trophies/provider/trophies_provider_test.mocks.dart +++ b/test/trophies/provider/trophies_provider_test.mocks.dart @@ -120,6 +120,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -129,6 +130,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -137,9 +139,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/user/provider_test.mocks.dart b/test/user/provider_test.mocks.dart index d16a2200..406eca92 100644 --- a/test/user/provider_test.mocks.dart +++ b/test/user/provider_test.mocks.dart @@ -120,6 +120,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -129,6 +130,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -137,9 +139,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/weight/weight_provider_test.mocks.dart b/test/weight/weight_provider_test.mocks.dart index e1ff97ab..b38902f6 100644 --- a/test/weight/weight_provider_test.mocks.dart +++ b/test/weight/weight_provider_test.mocks.dart @@ -120,6 +120,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { Uri? uri, { int? maxRetries = 3, Duration? initialDelay = const Duration(milliseconds: 250), + Duration? timeout = const Duration(seconds: 5), String? language, }) => (super.noSuchMethod( @@ -129,6 +130,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { { #maxRetries: maxRetries, #initialDelay: initialDelay, + #timeout: timeout, #language: language, }, ), @@ -137,9 +139,17 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { as _i5.Future); @override - _i5.Future> fetchPaginated(Uri? uri, {String? language}) => + _i5.Future> fetchPaginated( + Uri? uri, { + String? language, + Duration? timeout = const Duration(seconds: 5), + }) => (super.noSuchMethod( - Invocation.method(#fetchPaginated, [uri], {#language: language}), + Invocation.method( + #fetchPaginated, + [uri], + {#language: language, #timeout: timeout}, + ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); diff --git a/test/weight/weight_screen_test.mocks.dart b/test/weight/weight_screen_test.mocks.dart index 57035131..0ba292b4 100644 --- a/test/weight/weight_screen_test.mocks.dart +++ b/test/weight/weight_screen_test.mocks.dart @@ -1,21 +1,3 @@ -/* - * This file is part of wger Workout Manager . - * Copyright (c) 2026 wger Team - * - * wger Workout Manager is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - // Mocks generated by Mockito 5.4.6 from annotations // in wger/test/weight/weight_screen_test.dart. // Do not manually edit this file. @@ -252,7 +234,15 @@ class MockUserProvider extends _i1.Mock implements _i13.UserProvider { @override List<_i13.DashboardWidget> get dashboardWidgets => (super.noSuchMethod( - Invocation.getter(#dashboardOrder), + Invocation.getter(#dashboardWidgets), + returnValue: <_i13.DashboardWidget>[], + ) + as List<_i13.DashboardWidget>); + + @override + List<_i13.DashboardWidget> get allDashboardWidgets => + (super.noSuchMethod( + Invocation.getter(#allDashboardWidgets), returnValue: <_i13.DashboardWidget>[], ) as List<_i13.DashboardWidget>); diff --git a/test/widgets/routines/gym_mode/log_page_test.mocks.dart b/test/widgets/routines/gym_mode/log_page_test.mocks.dart index e9105c48..c3f7c8fc 100644 --- a/test/widgets/routines/gym_mode/log_page_test.mocks.dart +++ b/test/widgets/routines/gym_mode/log_page_test.mocks.dart @@ -402,7 +402,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider { as _i19.Future<_i4.Exercise>); @override - _i19.Future initCacheTimesLocalPrefs({dynamic forceInit = false}) => + _i19.Future initCacheTimesLocalPrefs({bool? forceInit = false}) => (super.noSuchMethod( Invocation.method(#initCacheTimesLocalPrefs, [], { #forceInit: forceInit,