Files
gridpilot.gg/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.test.ts
2025-12-16 21:05:01 +01:00

27 lines
1013 B
TypeScript

import { describe, it, expect, beforeEach, vi, Mock } from 'vitest';
import { RejectTeamJoinRequestUseCase } from './RejectTeamJoinRequestUseCase';
import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository';
describe('RejectTeamJoinRequestUseCase', () => {
let useCase: RejectTeamJoinRequestUseCase;
let membershipRepository: { removeJoinRequest: Mock };
beforeEach(() => {
membershipRepository = { removeJoinRequest: vi.fn() };
useCase = new RejectTeamJoinRequestUseCase(
membershipRepository as unknown as ITeamMembershipRepository,
);
});
it('should reject the join request successfully', async () => {
membershipRepository.removeJoinRequest.mockResolvedValue(undefined);
const result = await useCase.execute({
requestId: 'request-1',
});
expect(result.isOk()).toBe(true);
expect(result.unwrap()).toBeUndefined();
expect(membershipRepository.removeJoinRequest).toHaveBeenCalledWith('request-1');
});
});