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 }); }); });