Files
gridpilot.gg/core/leagues/application/use-cases/DemoteAdminUseCase.test.ts
Marc Mintel afef777961
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
code quality
2026-01-26 02:27:37 +01:00

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