Some checks failed
CI / lint-typecheck (pull_request) Failing after 12s
CI / tests (pull_request) Has been skipped
CI / contract-tests (pull_request) Has been skipped
CI / e2e-tests (pull_request) Has been skipped
CI / comment-pr (pull_request) Has been skipped
CI / commit-types (pull_request) Has been skipped
106 lines
4.9 KiB
TypeScript
106 lines
4.9 KiB
TypeScript
import { describe, it, expect, vi, beforeEach, Mock } from 'vitest';
|
|
import { DemoteAdminUseCase } from './DemoteAdminUseCase';
|
|
import { LeagueRepository } from '../ports/LeagueRepository';
|
|
import { DriverRepository } from '../../racing/domain/repositories/DriverRepository';
|
|
import { LeagueEventPublisher } from '../ports/LeagueEventPublisher';
|
|
|
|
describe('DemoteAdminUseCase', () => {
|
|
let mockLeagueRepository: LeagueRepository;
|
|
let mockDriverRepository: DriverRepository;
|
|
let mockEventPublisher: LeagueEventPublisher;
|
|
let useCase: DemoteAdminUseCase;
|
|
|
|
beforeEach(() => {
|
|
mockLeagueRepository = {
|
|
updateLeagueMember: vi.fn().mockResolvedValue(undefined) as unknown as Mock,
|
|
create: vi.fn() as unknown as Mock,
|
|
findById: vi.fn() as unknown as Mock,
|
|
findByName: vi.fn() as unknown as Mock,
|
|
findByOwner: vi.fn() as unknown as Mock,
|
|
search: vi.fn() as unknown as Mock,
|
|
update: vi.fn() as unknown as Mock,
|
|
delete: vi.fn() as unknown as Mock,
|
|
getStats: vi.fn() as unknown as Mock,
|
|
updateStats: vi.fn() as unknown as Mock,
|
|
getFinancials: vi.fn() as unknown as Mock,
|
|
updateFinancials: vi.fn() as unknown as Mock,
|
|
getStewardingMetrics: vi.fn() as unknown as Mock,
|
|
updateStewardingMetrics: vi.fn() as unknown as Mock,
|
|
getPerformanceMetrics: vi.fn() as unknown as Mock,
|
|
updatePerformanceMetrics: vi.fn() as unknown as Mock,
|
|
getRatingMetrics: vi.fn() as unknown as Mock,
|
|
updateRatingMetrics: vi.fn() as unknown as Mock,
|
|
getTrendMetrics: vi.fn() as unknown as Mock,
|
|
updateTrendMetrics: vi.fn() as unknown as Mock,
|
|
getSuccessRateMetrics: vi.fn() as unknown as Mock,
|
|
updateSuccessRateMetrics: vi.fn() as unknown as Mock,
|
|
getResolutionTimeMetrics: vi.fn() as unknown as Mock,
|
|
updateResolutionTimeMetrics: vi.fn() as unknown as Mock,
|
|
getComplexSuccessRateMetrics: vi.fn() as unknown as Mock,
|
|
updateComplexSuccessRateMetrics: vi.fn() as unknown as Mock,
|
|
getComplexResolutionTimeMetrics: vi.fn() as unknown as Mock,
|
|
updateComplexResolutionTimeMetrics: vi.fn() as unknown as Mock,
|
|
getLeagueMembers: vi.fn() as unknown as Mock,
|
|
getPendingRequests: vi.fn() as unknown as Mock,
|
|
addLeagueMembers: vi.fn() as unknown as Mock,
|
|
removeLeagueMember: vi.fn() as unknown as Mock,
|
|
addPendingRequests: vi.fn() as unknown as Mock,
|
|
removePendingRequest: vi.fn() as unknown as Mock,
|
|
};
|
|
mockDriverRepository = {
|
|
findById: vi.fn() as unknown as Mock,
|
|
findByName: vi.fn() as unknown as Mock,
|
|
findByEmail: vi.fn() as unknown as Mock,
|
|
search: vi.fn() as unknown as Mock,
|
|
update: vi.fn() as unknown as Mock,
|
|
delete: vi.fn() as unknown as Mock,
|
|
getStats: vi.fn() as unknown as Mock,
|
|
updateStats: vi.fn() as unknown as Mock,
|
|
getPerformanceMetrics: vi.fn() as unknown as Mock,
|
|
updatePerformanceMetrics: vi.fn() as unknown as Mock,
|
|
getRatingMetrics: vi.fn() as unknown as Mock,
|
|
updateRatingMetrics: vi.fn() as unknown as Mock,
|
|
getTrendMetrics: vi.fn() as unknown as Mock,
|
|
updateTrendMetrics: vi.fn() as unknown as Mock,
|
|
getSuccessRateMetrics: vi.fn() as unknown as Mock,
|
|
updateSuccessRateMetrics: vi.fn() as unknown as Mock,
|
|
getResolutionTimeMetrics: vi.fn() as unknown as Mock,
|
|
updateResolutionTimeMetrics: vi.fn() as unknown as Mock,
|
|
getComplexSuccessRateMetrics: vi.fn() as unknown as Mock,
|
|
updateComplexSuccessRateMetrics: vi.fn() as unknown as Mock,
|
|
getComplexResolutionTimeMetrics: vi.fn() as unknown as Mock,
|
|
updateComplexResolutionTimeMetrics: vi.fn() as unknown as Mock,
|
|
getDriverMemberships: vi.fn() as unknown as Mock,
|
|
addDriverMembership: vi.fn() as unknown as Mock,
|
|
updateDriverMembership: vi.fn() as unknown as Mock,
|
|
removeDriverMembership: vi.fn() as unknown as Mock,
|
|
};
|
|
mockEventPublisher = {
|
|
emitLeagueCreated: vi.fn() as unknown as Mock,
|
|
emitLeagueUpdated: vi.fn() as unknown as Mock,
|
|
emitLeagueDeleted: vi.fn() as unknown as Mock,
|
|
emitLeagueAccessed: vi.fn() as unknown as Mock,
|
|
emitLeagueRosterAccessed: vi.fn() as unknown as Mock,
|
|
getLeagueCreatedEventCount: vi.fn() as unknown as Mock,
|
|
getLeagueUpdatedEventCount: vi.fn() as unknown as Mock,
|
|
getLeagueDeletedEventCount: vi.fn() as unknown as Mock,
|
|
getLeagueAccessedEventCount: vi.fn() as unknown as Mock,
|
|
getLeagueRosterAccessedEventCount: vi.fn() as unknown as Mock,
|
|
clear: vi.fn() as unknown as Mock,
|
|
};
|
|
useCase = new DemoteAdminUseCase(mockLeagueRepository, mockDriverRepository, mockEventPublisher);
|
|
});
|
|
|
|
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' });
|
|
});
|
|
});
|