refactor core presenters

This commit is contained in:
2025-12-19 19:42:19 +01:00
parent 8116fe888f
commit 94fc538f44
228 changed files with 2817 additions and 3097 deletions

View File

@@ -47,11 +47,14 @@ describe('GetDriversLeaderboardUseCase', () => {
mockLogger,
);
const driver1 = { id: 'driver1', name: 'Driver One' };
const driver2 = { id: 'driver2', name: 'Driver Two' };
const rankings = { driver1: 1, driver2: 2 };
const stats1 = { wins: 5, losses: 2 };
const stats2 = { wins: 3, losses: 1 };
const driver1 = { id: 'driver1', name: { value: 'Driver One' }, country: { value: 'US' } };
const driver2 = { id: 'driver2', name: { value: 'Driver Two' }, country: { value: 'US' } };
const rankings = [
{ driverId: 'driver1', rating: 2500, overallRank: 1 },
{ driverId: 'driver2', rating: 2400, overallRank: 2 },
];
const stats1 = { totalRaces: 10, wins: 5, podiums: 7 };
const stats2 = { totalRaces: 8, wins: 3, podiums: 4 };
mockDriverFindAll.mockResolvedValue([driver1, driver2]);
mockRankingGetAllDriverRankings.mockReturnValue(rankings);
@@ -70,10 +73,37 @@ describe('GetDriversLeaderboardUseCase', () => {
expect(result.isOk()).toBe(true);
expect(result.value).toEqual({
drivers: [driver1, driver2],
rankings,
stats: { driver1: stats1, driver2: stats2 },
avatarUrls: { driver1: 'avatar-driver1', driver2: 'avatar-driver2' },
drivers: [
{
id: 'driver1',
name: 'Driver One',
rating: 2500,
skillLevel: 'Pro',
nationality: 'US',
racesCompleted: 10,
wins: 5,
podiums: 7,
isActive: true,
rank: 1,
avatarUrl: 'avatar-driver1',
},
{
id: 'driver2',
name: 'Driver Two',
rating: 2400,
skillLevel: 'Pro',
nationality: 'US',
racesCompleted: 8,
wins: 3,
podiums: 4,
isActive: true,
rank: 2,
avatarUrl: 'avatar-driver2',
},
],
totalRaces: 18,
totalWins: 8,
activeCount: 2,
});
});
@@ -87,16 +117,16 @@ describe('GetDriversLeaderboardUseCase', () => {
);
mockDriverFindAll.mockResolvedValue([]);
mockRankingGetAllDriverRankings.mockReturnValue({});
mockRankingGetAllDriverRankings.mockReturnValue([]);
const result = await useCase.execute();
expect(result.isOk()).toBe(true);
expect(result.value).toEqual({
drivers: [],
rankings: {},
stats: {},
avatarUrls: {},
totalRaces: 0,
totalWins: 0,
activeCount: 0,
});
});
@@ -109,8 +139,8 @@ describe('GetDriversLeaderboardUseCase', () => {
mockLogger,
);
const driver1 = { id: 'driver1', name: 'Driver One' };
const rankings = { driver1: 1 };
const driver1 = { id: 'driver1', name: { value: 'Driver One' }, country: { value: 'US' } };
const rankings = [{ driverId: 'driver1', rating: 2500, overallRank: 1 }];
mockDriverFindAll.mockResolvedValue([driver1]);
mockRankingGetAllDriverRankings.mockReturnValue(rankings);
@@ -121,10 +151,24 @@ describe('GetDriversLeaderboardUseCase', () => {
expect(result.isOk()).toBe(true);
expect(result.value).toEqual({
drivers: [driver1],
rankings,
stats: {},
avatarUrls: { driver1: 'avatar-driver1' },
drivers: [
{
id: 'driver1',
name: 'Driver One',
rating: 2500,
skillLevel: 'Pro',
nationality: 'US',
racesCompleted: 0,
wins: 0,
podiums: 0,
isActive: true,
rank: 1,
avatarUrl: 'avatar-driver1',
},
],
totalRaces: 0,
totalWins: 0,
activeCount: 1,
});
});