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

@@ -0,0 +1,41 @@
import { describe, it, expect, vi } from 'vitest';
import { WithdrawFromRaceUseCase } from './WithdrawFromRaceUseCase';
import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository';
describe('WithdrawFromRaceUseCase', () => {
it('withdraws from race successfully', async () => {
const mockRegistrationRepository = {
withdraw: vi.fn().mockResolvedValue(undefined),
} as unknown as IRaceRegistrationRepository;
const useCase = new WithdrawFromRaceUseCase(mockRegistrationRepository);
const command = {
raceId: 'race-1',
driverId: 'driver-1',
};
const result = await useCase.execute(command);
expect(result.isOk()).toBe(true);
expect(mockRegistrationRepository.withdraw).toHaveBeenCalledWith('race-1', 'driver-1');
});
it('returns error when not registered', async () => {
const mockRegistrationRepository = {
withdraw: vi.fn().mockRejectedValue(new Error('not registered')),
} as unknown as IRaceRegistrationRepository;
const useCase = new WithdrawFromRaceUseCase(mockRegistrationRepository);
const command = {
raceId: 'race-1',
driverId: 'driver-1',
};
const result = await useCase.execute(command);
expect(result.isErr()).toBe(true);
expect(result.unwrapErr()).toEqual({ code: 'NOT_REGISTERED' });
});
});