refactor racing use cases

This commit is contained in:
2025-12-21 00:43:42 +01:00
parent e9d6f90bb2
commit c12656d671
308 changed files with 14401 additions and 7419 deletions

View File

@@ -1,6 +1,7 @@
import { describe, it, expect, beforeEach, vi, Mock } from 'vitest';
import { ApproveLeagueJoinRequestUseCase } from './ApproveLeagueJoinRequestUseCase';
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
describe('ApproveLeagueJoinRequestUseCase', () => {
let mockLeagueMembershipRepo: {
@@ -18,7 +19,14 @@ describe('ApproveLeagueJoinRequestUseCase', () => {
});
it('should approve join request and save membership', async () => {
const useCase = new ApproveLeagueJoinRequestUseCase(mockLeagueMembershipRepo as unknown as ILeagueMembershipRepository);
const output = {
present: vi.fn(),
};
const useCase = new ApproveLeagueJoinRequestUseCase(
mockLeagueMembershipRepo as unknown as ILeagueMembershipRepository,
output as unknown as UseCaseOutputPort<any>,
);
const leagueId = 'league-1';
const requestId = 'req-1';
@@ -29,7 +37,7 @@ describe('ApproveLeagueJoinRequestUseCase', () => {
const result = await useCase.execute({ leagueId, requestId });
expect(result.isOk()).toBe(true);
expect(result.value).toEqual({ success: true, message: 'Join request approved.' });
expect(result.unwrap()).toBeUndefined();
expect(mockLeagueMembershipRepo.removeJoinRequest).toHaveBeenCalledWith(requestId);
expect(mockLeagueMembershipRepo.saveMembership).toHaveBeenCalledWith({
id: expect.any(String),
@@ -39,10 +47,18 @@ describe('ApproveLeagueJoinRequestUseCase', () => {
status: 'active',
joinedAt: expect.any(Date),
});
expect(output.present).toHaveBeenCalledWith({ success: true, message: 'Join request approved.' });
});
it('should return error if request not found', async () => {
const useCase = new ApproveLeagueJoinRequestUseCase(mockLeagueMembershipRepo as unknown as ILeagueMembershipRepository);
const output = {
present: vi.fn(),
};
const useCase = new ApproveLeagueJoinRequestUseCase(
mockLeagueMembershipRepo as unknown as ILeagueMembershipRepository,
output as unknown as UseCaseOutputPort<any>,
);
mockLeagueMembershipRepo.getJoinRequests.mockResolvedValue([]);