Files
gridpilot.gg/core/leagues/application/use-cases/DemoteAdminUseCase.test.ts
2026-01-24 12:18:31 +01:00

31 lines
909 B
TypeScript

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' });
});
});