refactor racing use cases
This commit is contained in:
@@ -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([]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user