code quality
Some checks failed
CI / lint-typecheck (pull_request) Failing after 12s
CI / tests (pull_request) Has been skipped
CI / contract-tests (pull_request) Has been skipped
CI / e2e-tests (pull_request) Has been skipped
CI / comment-pr (pull_request) Has been skipped
CI / commit-types (pull_request) Has been skipped

This commit is contained in:
2026-01-26 02:27:37 +01:00
parent bf2c0fdb0c
commit afef777961
23 changed files with 565 additions and 134 deletions

View File

@@ -1,14 +1,16 @@
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { GetDriverRankingsUseCase, GetDriverRankingsUseCasePorts } from './GetDriverRankingsUseCase';
import { ValidationError } from '../../../shared/errors/ValidationError';
import { LeaderboardsRepository, LeaderboardDriverData } from '../ports/LeaderboardsRepository';
import { LeaderboardsEventPublisher } from '../ports/LeaderboardsEventPublisher';
describe('GetDriverRankingsUseCase', () => {
let mockLeaderboardsRepository: any;
let mockEventPublisher: any;
let mockLeaderboardsRepository: LeaderboardsRepository;
let mockEventPublisher: LeaderboardsEventPublisher;
let ports: GetDriverRankingsUseCasePorts;
let useCase: GetDriverRankingsUseCase;
const mockDrivers = [
const mockDrivers: LeaderboardDriverData[] = [
{ id: '1', name: 'Alice', rating: 2000, raceCount: 10, teamId: 't1', teamName: 'Team A' },
{ id: '2', name: 'Bob', rating: 1500, raceCount: 5, teamId: 't2', teamName: 'Team B' },
{ id: '3', name: 'Charlie', rating: 1800, raceCount: 8 },
@@ -17,10 +19,14 @@ describe('GetDriverRankingsUseCase', () => {
beforeEach(() => {
mockLeaderboardsRepository = {
findAllDrivers: vi.fn().mockResolvedValue([...mockDrivers]),
findAllTeams: vi.fn(),
findDriversByTeamId: vi.fn(),
};
mockEventPublisher = {
publishDriverRankingsAccessed: vi.fn().mockResolvedValue(undefined),
publishLeaderboardsError: vi.fn().mockResolvedValue(undefined),
publishGlobalLeaderboardsAccessed: vi.fn(),
publishTeamRankingsAccessed: vi.fn(),
};
ports = {
leaderboardsRepository: mockLeaderboardsRepository,
@@ -92,6 +98,6 @@ describe('GetDriverRankingsUseCase', () => {
});
it('should throw ValidationError for invalid sortBy', async () => {
await expect(useCase.execute({ sortBy: 'invalid' as any })).rejects.toThrow(ValidationError);
await expect(useCase.execute({ sortBy: 'invalid' as unknown as 'name' })).rejects.toThrow(ValidationError);
});
});