core tests
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
||||
import { SearchLeaguesUseCase, SearchLeaguesQuery } from './SearchLeaguesUseCase';
|
||||
|
||||
describe('SearchLeaguesUseCase', () => {
|
||||
let mockLeagueRepository: any;
|
||||
let useCase: SearchLeaguesUseCase;
|
||||
|
||||
const mockLeagues = [
|
||||
{ id: '1', name: 'League 1' },
|
||||
{ id: '2', name: 'League 2' },
|
||||
{ id: '3', name: 'League 3' },
|
||||
];
|
||||
|
||||
beforeEach(() => {
|
||||
mockLeagueRepository = {
|
||||
search: vi.fn().mockResolvedValue([...mockLeagues]),
|
||||
};
|
||||
useCase = new SearchLeaguesUseCase(mockLeagueRepository);
|
||||
});
|
||||
|
||||
it('should return search results with default limit', async () => {
|
||||
const query: SearchLeaguesQuery = { query: 'test' };
|
||||
const result = await useCase.execute(query);
|
||||
|
||||
expect(result).toHaveLength(3);
|
||||
expect(mockLeagueRepository.search).toHaveBeenCalledWith('test');
|
||||
});
|
||||
|
||||
it('should respect limit and offset', async () => {
|
||||
const query: SearchLeaguesQuery = { query: 'test', limit: 1, offset: 1 };
|
||||
const result = await useCase.execute(query);
|
||||
|
||||
expect(result).toHaveLength(1);
|
||||
expect(result[0].id).toBe('2');
|
||||
});
|
||||
|
||||
it('should throw error if query is missing', async () => {
|
||||
const query: any = { query: '' };
|
||||
await expect(useCase.execute(query)).rejects.toThrow('Search query is required');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user