This commit is contained in:
2025-12-16 21:05:01 +01:00
parent f61e3a4e5a
commit 7532c7ed6d
207 changed files with 7861 additions and 2606 deletions

View File

@@ -1,12 +1,13 @@
import { describe, it, expect, beforeEach, vi, Mock } from 'vitest';
import { CloseRaceEventStewardingUseCase } from './CloseRaceEventStewardingUseCase';
import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository';
import type { IDomainEventPublisher } from '@core/shared/domain/IDomainEvent';
import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository';
import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository';
import type { DomainEventPublisher } from '@/shared/domain/DomainEvent';
import type { Logger } from '@core/shared/application';
import { RaceEvent } from '../../domain/entities/RaceEvent';
import { Session } from '../../domain/entities/Session';
import { SessionType } from '../../domain/value-objects/SessionType';
import { RacingDomainValidationError } from '../../domain/errors/RacingDomainError';
describe('CloseRaceEventStewardingUseCase', () => {
let useCase: CloseRaceEventStewardingUseCase;
@@ -14,6 +15,12 @@ describe('CloseRaceEventStewardingUseCase', () => {
findAwaitingStewardingClose: Mock;
update: Mock;
};
let raceRegistrationRepository: {
getRegisteredDrivers: Mock;
};
let penaltyRepository: {
findByRaceId: Mock;
};
let domainEventPublisher: {
publish: Mock;
};
@@ -26,6 +33,12 @@ describe('CloseRaceEventStewardingUseCase', () => {
findAwaitingStewardingClose: vi.fn(),
update: vi.fn(),
};
raceRegistrationRepository = {
getRegisteredDrivers: vi.fn(),
};
penaltyRepository = {
findByRaceId: vi.fn(),
};
domainEventPublisher = {
publish: vi.fn(),
};
@@ -35,7 +48,9 @@ describe('CloseRaceEventStewardingUseCase', () => {
useCase = new CloseRaceEventStewardingUseCase(
logger as unknown as Logger,
raceEventRepository as unknown as IRaceEventRepository,
domainEventPublisher as unknown as IDomainEventPublisher,
raceRegistrationRepository as unknown as IRaceRegistrationRepository,
penaltyRepository as unknown as IPenaltyRepository,
domainEventPublisher as unknown as DomainEventPublisher,
);
});
@@ -61,6 +76,8 @@ describe('CloseRaceEventStewardingUseCase', () => {
});
raceEventRepository.findAwaitingStewardingClose.mockResolvedValue([raceEvent]);
raceRegistrationRepository.getRegisteredDrivers.mockResolvedValue(['driver-1', 'driver-2']);
penaltyRepository.findByRaceId.mockResolvedValue([]);
domainEventPublisher.publish.mockResolvedValue(undefined);
const result = await useCase.execute({});
@@ -89,6 +106,6 @@ describe('CloseRaceEventStewardingUseCase', () => {
const result = await useCase.execute({});
expect(result.isErr()).toBe(true);
expect(result.unwrapErr()).toBeInstanceOf(RacingDomainValidationError);
expect(result.unwrapErr().code).toBe('FAILED_TO_CLOSE_STEWARDING');
});
});