Files
gridpilot.gg/tests/application/GetTotalDriversUseCase.spec.ts
2025-12-16 11:52:26 +01:00

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