fix issues in core

This commit is contained in:
2025-12-23 15:38:50 +01:00
parent df5c20c5cc
commit 120d3bb1a1
125 changed files with 1005 additions and 793 deletions

View File

@@ -10,23 +10,22 @@ import type { IRaceRegistrationRepository } from '../../domain/repositories/IRac
import type { Logger } from '@core/shared/application/Logger';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import { Result } from '@core/shared/application/Result';
describe('WithdrawFromRaceUseCase', () => {
let raceRepository: IRaceRepository;
let registrationRepository: IRaceRegistrationRepository;
let raceRepository: { findById: ReturnType<typeof vi.fn> };
let registrationRepository: { isRegistered: ReturnType<typeof vi.fn>; withdraw: ReturnType<typeof vi.fn> };
let logger: Logger;
let output: UseCaseOutputPort<WithdrawFromRaceResult> & { present: ReturnType<typeof vi.fn> };
beforeEach(() => {
raceRepository = {
findById: vi.fn(),
} as unknown as IRaceRepository;
};
registrationRepository = {
isRegistered: vi.fn(),
withdraw: vi.fn(),
} as unknown as IRaceRegistrationRepository;
};
logger = {
debug: vi.fn(),
@@ -35,21 +34,30 @@ describe('WithdrawFromRaceUseCase', () => {
error: vi.fn(),
};
output = { present: vi.fn() } as any;
output = { present: vi.fn() } as unknown as UseCaseOutputPort<WithdrawFromRaceResult> & {
present: ReturnType<typeof vi.fn>;
};
});
const createUseCase = () =>
new WithdrawFromRaceUseCase(raceRepository, registrationRepository, logger, output);
new WithdrawFromRaceUseCase(
raceRepository as unknown as IRaceRepository,
registrationRepository as unknown as IRaceRegistrationRepository,
logger,
output,
);
it('withdraws from race successfully', async () => {
const race = {
id: 'race-1',
isUpcoming: vi.fn().mockReturnValue(true),
} as any;
};
(raceRepository.findById as any).mockResolvedValue(race);
(registrationRepository.isRegistered as any).mockResolvedValue(true);
(registrationRepository.withdraw as any).mockResolvedValue(undefined);
raceRepository.findById.mockResolvedValue(
race as unknown as Awaited<ReturnType<IRaceRepository['findById']>>,
);
registrationRepository.isRegistered.mockResolvedValue(true);
registrationRepository.withdraw.mockResolvedValue(undefined);
const useCase = createUseCase();
@@ -72,7 +80,7 @@ describe('WithdrawFromRaceUseCase', () => {
});
it('returns error when race is not found', async () => {
(raceRepository.findById as any).mockResolvedValue(null);
raceRepository.findById.mockResolvedValue(null);
const useCase = createUseCase();
@@ -94,10 +102,12 @@ describe('WithdrawFromRaceUseCase', () => {
const race = {
id: 'race-1',
isUpcoming: vi.fn().mockReturnValue(true),
} as any;
};
(raceRepository.findById as any).mockResolvedValue(race);
(registrationRepository.isRegistered as any).mockResolvedValue(false);
raceRepository.findById.mockResolvedValue(
race as unknown as Awaited<ReturnType<IRaceRepository['findById']>>,
);
registrationRepository.isRegistered.mockResolvedValue(false);
const useCase = createUseCase();
@@ -119,10 +129,12 @@ describe('WithdrawFromRaceUseCase', () => {
const race = {
id: 'race-1',
isUpcoming: vi.fn().mockReturnValue(false),
} as any;
};
(raceRepository.findById as any).mockResolvedValue(race);
(registrationRepository.isRegistered as any).mockResolvedValue(true);
raceRepository.findById.mockResolvedValue(
race as unknown as Awaited<ReturnType<IRaceRepository['findById']>>,
);
registrationRepository.isRegistered.mockResolvedValue(true);
const useCase = createUseCase();
@@ -144,11 +156,13 @@ describe('WithdrawFromRaceUseCase', () => {
const race = {
id: 'race-1',
isUpcoming: vi.fn().mockReturnValue(true),
} as any;
};
(raceRepository.findById as any).mockResolvedValue(race);
(registrationRepository.isRegistered as any).mockResolvedValue(true);
(registrationRepository.withdraw as any).mockRejectedValue(new Error('DB failure'));
raceRepository.findById.mockResolvedValue(
race as unknown as Awaited<ReturnType<IRaceRepository['findById']>>,
);
registrationRepository.isRegistered.mockResolvedValue(true);
registrationRepository.withdraw.mockRejectedValue(new Error('DB failure'));
const useCase = createUseCase();