33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
import { GetTotalDriversUseCase } from '@core/racing/application/use-cases/GetTotalDriversUseCase';
|
|
import { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
|
|
import { DriverStatsPresenter } from '@apps/api/src/modules/driver/presenters/DriverStatsPresenter';
|
|
|
|
describe('GetTotalDriversUseCase', () => {
|
|
let useCase: GetTotalDriversUseCase;
|
|
let driverRepository: { findAll: any };
|
|
|
|
beforeEach(() => {
|
|
driverRepository = {
|
|
findAll: vi.fn(),
|
|
};
|
|
useCase = new GetTotalDriversUseCase(driverRepository as IDriverRepository);
|
|
});
|
|
|
|
it('should return total drivers count', async () => {
|
|
// Arrange
|
|
const mockDrivers = [
|
|
{ id: '1', name: 'Driver 1' },
|
|
{ id: '2', name: 'Driver 2' },
|
|
];
|
|
driverRepository.findAll.mockResolvedValue(mockDrivers);
|
|
const presenter = new DriverStatsPresenter();
|
|
|
|
// Act
|
|
await useCase.execute(undefined, presenter);
|
|
|
|
// Assert
|
|
expect(driverRepository.findAll).toHaveBeenCalled();
|
|
expect(presenter.viewModel).toEqual({ totalDrivers: 2 });
|
|
});
|
|
}); |