code quality

This commit is contained in:
2026-01-26 11:02:19 +01:00
parent afef777961
commit f877f821ef
14 changed files with 232 additions and 87 deletions

View File

@@ -1,19 +1,60 @@
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { describe, it, expect, vi, beforeEach, Mock } from 'vitest';
import { JoinLeagueUseCase } from './JoinLeagueUseCase';
import type { JoinLeagueCommand } from '../ports/JoinLeagueCommand';
import { LeagueRepository } from '../ports/LeagueRepository';
import { DriverRepository } from '../../../racing/domain/repositories/DriverRepository';
import { EventPublisher } from '../../../shared/ports/EventPublisher';
const mockLeagueRepository = {
findById: vi.fn(),
addPendingRequests: vi.fn(),
addLeagueMembers: vi.fn(),
const mockLeagueRepository: LeagueRepository = {
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,
updateLeagueMember: 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,
};
const mockDriverRepository = {
findDriverById: vi.fn(),
const mockDriverRepository: DriverRepository = {
findById: vi.fn() as unknown as Mock,
findByIRacingId: vi.fn() as unknown as Mock,
findAll: vi.fn() as unknown as Mock,
create: vi.fn() as unknown as Mock,
update: vi.fn() as unknown as Mock,
delete: vi.fn() as unknown as Mock,
exists: vi.fn() as unknown as Mock,
existsByIRacingId: vi.fn() as unknown as Mock,
};
const mockEventPublisher = {
publish: vi.fn(),
const mockEventPublisher: EventPublisher = {
publish: vi.fn() as unknown as Mock,
};
describe('JoinLeagueUseCase', () => {
@@ -24,9 +65,9 @@ describe('JoinLeagueUseCase', () => {
vi.clearAllMocks();
useCase = new JoinLeagueUseCase(
mockLeagueRepository as any,
mockDriverRepository as any,
mockEventPublisher as any
mockLeagueRepository,
mockDriverRepository,
mockEventPublisher
);
});
@@ -38,7 +79,7 @@ describe('JoinLeagueUseCase', () => {
driverId: 'driver-456',
};
mockLeagueRepository.findById.mockImplementation(() => Promise.resolve(null));
(mockLeagueRepository.findById as Mock).mockImplementation(() => Promise.resolve(null));
// When & Then
await expect(useCase.execute(command)).rejects.toThrow('League not found');
@@ -82,13 +123,13 @@ describe('JoinLeagueUseCase', () => {
tags: null,
};
mockLeagueRepository.findById.mockImplementation(() => Promise.resolve(mockLeague));
mockDriverRepository.findDriverById.mockImplementation(() => Promise.resolve(null));
(mockLeagueRepository.findById as Mock).mockImplementation(() => Promise.resolve(mockLeague));
(mockDriverRepository.findById as Mock).mockImplementation(() => Promise.resolve(null));
// When & Then
await expect(useCase.execute(command)).rejects.toThrow('Driver not found');
expect(mockLeagueRepository.findById).toHaveBeenCalledWith('league-123');
expect(mockDriverRepository.findDriverById).toHaveBeenCalledWith('driver-456');
expect(mockDriverRepository.findById).toHaveBeenCalledWith('driver-456');
});
});
@@ -141,8 +182,8 @@ describe('JoinLeagueUseCase', () => {
const frozenTime = new Date('2024-01-01T00:00:00.000Z');
vi.setSystemTime(frozenTime);
mockLeagueRepository.findById.mockResolvedValue(mockLeague);
mockDriverRepository.findDriverById.mockResolvedValue(mockDriver);
(mockLeagueRepository.findById as Mock).mockResolvedValue(mockLeague);
(mockDriverRepository.findById as Mock).mockResolvedValue(mockDriver);
// When
await useCase.execute(command);
@@ -213,8 +254,8 @@ describe('JoinLeagueUseCase', () => {
updatedAt: new Date(),
};
mockLeagueRepository.findById.mockResolvedValue(mockLeague);
mockDriverRepository.findDriverById.mockResolvedValue(mockDriver);
(mockLeagueRepository.findById as Mock).mockResolvedValue(mockLeague);
(mockDriverRepository.findById as Mock).mockResolvedValue(mockDriver);
// When
await useCase.execute(command);