fix issues in core
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user