refactor use cases
This commit is contained in:
@@ -8,8 +8,6 @@ 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 type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||
|
||||
describe('CloseRaceEventStewardingUseCase', () => {
|
||||
let useCase: CloseRaceEventStewardingUseCase;
|
||||
let raceEventRepository: {
|
||||
@@ -29,8 +27,6 @@ describe('CloseRaceEventStewardingUseCase', () => {
|
||||
let logger: {
|
||||
error: Mock;
|
||||
};
|
||||
let output: UseCaseOutputPort<CloseRaceEventStewardingResult> & { present: Mock };
|
||||
|
||||
beforeEach(() => {
|
||||
raceEventRepository = {
|
||||
findAwaitingStewardingClose: vi.fn(),
|
||||
@@ -49,15 +45,11 @@ describe('CloseRaceEventStewardingUseCase', () => {
|
||||
logger = {
|
||||
error: vi.fn(),
|
||||
};
|
||||
output = { present: vi.fn() } as unknown as UseCaseOutputPort<CloseRaceEventStewardingResult> & { present: Mock };
|
||||
useCase = new CloseRaceEventStewardingUseCase(
|
||||
logger as unknown as Logger,
|
||||
useCase = new CloseRaceEventStewardingUseCase(logger as unknown as Logger,
|
||||
raceEventRepository as unknown as IRaceEventRepository,
|
||||
raceRegistrationRepository as unknown as IRaceRegistrationRepository,
|
||||
penaltyRepository as unknown as IPenaltyRepository,
|
||||
domainEventPublisher as unknown as DomainEventPublisher,
|
||||
output,
|
||||
);
|
||||
domainEventPublisher as unknown as DomainEventPublisher);
|
||||
});
|
||||
|
||||
it('should close stewarding for expired events successfully', async () => {
|
||||
@@ -96,11 +88,7 @@ describe('CloseRaceEventStewardingUseCase', () => {
|
||||
expect.objectContaining({ status: 'closed' })
|
||||
);
|
||||
expect(domainEventPublisher.publish).toHaveBeenCalled();
|
||||
expect(output.present).toHaveBeenCalledTimes(1);
|
||||
|
||||
const presentedRace = (output.present as Mock).mock.calls[0]?.[0]?.race as unknown as {
|
||||
id?: unknown;
|
||||
status?: unknown;
|
||||
const presentedRace = (status?: unknown;
|
||||
};
|
||||
const presentedId =
|
||||
presentedRace?.id && typeof presentedRace.id === 'object' && typeof presentedRace.id.toString === 'function'
|
||||
@@ -120,8 +108,7 @@ describe('CloseRaceEventStewardingUseCase', () => {
|
||||
expect(result.unwrap()).toBeUndefined();
|
||||
expect(raceEventRepository.update).not.toHaveBeenCalled();
|
||||
expect(domainEventPublisher.publish).not.toHaveBeenCalled();
|
||||
expect(output.present).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return error when repository throws', async () => {
|
||||
raceEventRepository.findAwaitingStewardingClose.mockRejectedValue(new Error('DB error'));
|
||||
@@ -134,6 +121,5 @@ describe('CloseRaceEventStewardingUseCase', () => {
|
||||
if ('details' in err && err.details && typeof err.details === 'object' && 'message' in err.details) {
|
||||
expect(err.details.message).toContain('DB error');
|
||||
}
|
||||
expect(output.present).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user