Skip to content

commit af1f6ff

abduznik edited this page May 23, 2026 · 1 revision

fix(tests): resolve widget test failures and shared preferences unimplemented errors

Commit: af1f6ff1a6b79b7dee4fe669be7e2f08bd78670f

Author: abduznik

Date: 2026-04-28

Why: Fixes a bug or regression in the existing codebase.

Files Changed

test/widgets/download_screen_test.dart | 10 ++++++++++
 test/widgets/library_screen_test.dart  |  3 ++-
 2 files changed, 12 insertions(+), 1 deletion(-)
  • test/widgets/download_screen_test.dart
  • test/widgets/library_screen_test.dart

Diff

diff --git a/test/widgets/download_screen_test.dart b/test/widgets/download_screen_test.dart
index 596b204..cba11f1 100644
--- a/test/widgets/download_screen_test.dart
+++ b/test/widgets/download_screen_test.dart
@@ -4,6 +4,8 @@ import 'package:flutter_test/flutter_test.dart';
 import 'package:freegosy/core/downloader/download_service.dart';
 import 'package:freegosy/providers/download_provider.dart';
 import 'package:freegosy/ui/screens/download_screen.dart';
+import 'package:freegosy/providers/shared_prefs_provider.dart';
+import 'package:shared_preferences/shared_preferences.dart';
 
 class MockDownloadNotifier extends DownloadNotifier {
   MockDownloadNotifier(super.ref);
@@ -14,8 +16,13 @@ class MockDownloadNotifier extends DownloadNotifier {
 }
 
 void main() {
+  setUp(() async {
+    SharedPreferences.setMockInitialValues({});
+  });
+
   group('DownloadScreen', () {
     testWidgets('shows active downloads with progress bars', (WidgetTester tester) async {
+      final prefs = await SharedPreferences.getInstance();
       final downloads = {
         '1': DownloadProgress(
           id: '1',
@@ -27,6 +34,7 @@ void main() {
 
       await tester.pumpWidget(ProviderScope(
         overrides: [
+          sharedPreferencesProvider.overrideWithValue(prefs),
           downloadProvider.overrideWith((ref) => MockDownloadNotifier(ref)..setDownloads(downloads)),
         ],
         child: const MaterialApp(home: DownloadScreen()),
@@ -38,8 +46,10 @@ void main() {
     });
 
     testWidgets('shows empty state when no downloads', (WidgetTester tester) async {
+      final prefs = await SharedPreferences.getInstance();
       await tester.pumpWidget(ProviderScope(
         overrides: [
+          sharedPreferencesProvider.overrideWithValue(prefs),
           downloadProvider.overrideWith((ref) => MockDownloadNotifier(ref)..setDownloads({})),
         ],
         child: const MaterialApp(home: DownloadScreen()),
diff --git a/test/widgets/library_screen_test.dart b/test/widgets/library_screen_test.dart
index 67cc5b0..30f7e01 100644
--- a/test/widgets/library_screen_test.dart
+++ b/test/widgets/library_screen_test.dart
@@ -32,7 +32,8 @@ void main() {
     when(mockRommService.config).thenReturn(RomMConfig(baseUrl: 'https://test.com', username: 'u', password: 'p'));
     when(mockRommService.resolveCoverUrl(any)).thenReturn(null);
     when(mockRommService.getRecentlyPlayed(limit: anyNamed('limit'))).thenAnswer((_) async => []);
-    when(mockRommService.searchRoms(search: anyNamed('search'))).thenAnswer((_) async => []);
+    when(mockRommService.searchRoms(search: anyNamed('search'), platformId: anyNamed('platformId'))).thenAnswer((_) async => []);
+    when(mockRommService.isOffline).thenReturn(ValueNotifier<bool>(false));
     when(mockDirectoryService.status).thenReturn(const StorageStatus());
     when(mockRomMappingService.getMappings()).thenReturn({});
     when(mockRomMappingService.getMTimes()).thenReturn({});

Clone this wiki locally