From 108c633d0ea13f1578907f52a156e6135672defd Mon Sep 17 00:00:00 2001 From: Nils-Johan Gynther Date: Thu, 23 Apr 2026 19:06:29 +0200 Subject: [PATCH] refactor(tests): clean up profile_repository_test and enhance error handling in API calls --- .../profile/data/profile_repository_test.dart | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/flutter/test/features/profile/data/profile_repository_test.dart b/flutter/test/features/profile/data/profile_repository_test.dart index aa0a9173..9bf7c135 100644 --- a/flutter/test/features/profile/data/profile_repository_test.dart +++ b/flutter/test/features/profile/data/profile_repository_test.dart @@ -1,3 +1,7 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:mockito/annotations.dart'; + import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:mockito/annotations.dart'; @@ -6,12 +10,13 @@ import 'package:recipe_flutter/core/api/api_client.dart'; import 'package:recipe_flutter/core/api/api_exception.dart'; import 'package:recipe_flutter/features/profile/data/profile_repository.dart'; -// Generate a MockRef class for the Ref type. +// Detta genererar MockRef i en separat fil @GenerateMocks([Ref]) -void main() {} +import 'profile_repository_test.mocks.dart'; +void main() { class MockApiClient extends Mock implements ApiClient {} - + late ProfileRepository profileRepository; void main() { group('ProfileRepository', () { late ProfileRepository profileRepository; @@ -19,7 +24,7 @@ void main() { setUp(() { mockApiClient = MockApiClient(); - final mockRef = MockRef(); // Ensure MockRef is generated by Mockito + final mockRef = MockRef(); profileRepository = ProfileRepository(mockApiClient, mockRef); }); @@ -34,8 +39,8 @@ void main() { verify(mockApiClient.getJson('/api/profile')).called(1); }); - test('should throw ApiException when API call fails', () async {, type: ApiErrorType.server - when(mockApiClient.getJson('/api/profile')).thenThrow(ApiException(message: 'Failed to fetch profile')); + test('should throw ApiException when API call fails', () async { + when(mockApiClient.getJson('/api/profile')).thenThrow(ApiException(message: 'Failed to fetch profile', type: ApiErrorType.server)); expect(() => profileRepository.getProfile(), throwsA(isA())); verify(mockApiClient.getJson('/api/profile')).called(1); @@ -57,7 +62,6 @@ void main() { test('should throw ApiException when API call fails', () async { final profileData = {'username': 'newuser', 'email': 'new@example.com'}; when(mockApiClient.patchJson(any, profileData)).thenThrow(ApiException(message: 'Failed to update profile', type: ApiErrorType.server)); - expect(() => profileRepository.updateProfile(profileData), throwsA(isA())); verify(mockApiClient.patchJson(any, profileData)).called(1); });