import { describe, it, expect, vi, beforeEach } from 'vitest'; import { DemoteAdminUseCase } from './DemoteAdminUseCase'; describe('DemoteAdminUseCase', () => { let mockLeagueRepository: any; let mockDriverRepository: any; let mockEventPublisher: any; let useCase: DemoteAdminUseCase; beforeEach(() => { mockLeagueRepository = { updateLeagueMember: vi.fn().mockResolvedValue(undefined), }; mockDriverRepository = {}; mockEventPublisher = {}; useCase = new DemoteAdminUseCase(mockLeagueRepository, mockDriverRepository, mockEventPublisher as any); }); it('should update member role to member', async () => { const command = { leagueId: 'l1', targetDriverId: 'd1', actorId: 'owner-1', }; await useCase.execute(command); expect(mockLeagueRepository.updateLeagueMember).toHaveBeenCalledWith('l1', 'd1', { role: 'member' }); }); });