code quality
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user