import 'package:eatvio_app/features/menu/models/blocked_users_model.dart'; import 'package:eatvio_app/features/menu/services/blocked_users_service.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import '../../../fixtures/menu_fixtures.dart'; import 'blocked_users_service_test.mocks.dart'; @GenerateNiceMocks([MockSpec()]) void main() { group('BlockedUserService', () { late MockBlockedUserService mockBlockedUserService; setUp(() { mockBlockedUserService = MockBlockedUserService(); }); test('getBlockedUsers - возвращает список заблокированных пользователей', () async { final expectedBlockedUsers = MenuFixtures.blockedUsersModel(); when(mockBlockedUserService.getBlockedUsers()) .thenAnswer((_) async => expectedBlockedUsers); final result = await mockBlockedUserService.getBlockedUsers(); expect(result, isA()); expect(result.profilesList.length, 2); expect(result.profilesList.first.id, 1); verify(mockBlockedUserService.getBlockedUsers()).called(1); }); test('blockUser - блокирует пользователя', () async { final blockedUser = MenuFixtures.blockedUser(); final data = {'slug': blockedUser.slug}; when(mockBlockedUserService.blockUser(data: data)) .thenAnswer((_) async => Future.value()); await mockBlockedUserService.blockUser(data: data); verify(mockBlockedUserService.blockUser(data: data)).called(1); }); test('unblockUser - разблокирует пользователя', () async { final blockedUser = MenuFixtures.blockedUser(); final data = {'slug': blockedUser.slug}; when(mockBlockedUserService.unblockUser(data: data)) .thenAnswer((_) async => Future.value()); await mockBlockedUserService.unblockUser(data: data); verify(mockBlockedUserService.unblockUser(data: data)).called(1); }); }); }