fix issues in core

This commit is contained in:
2025-12-23 15:38:50 +01:00
parent df5c20c5cc
commit 120d3bb1a1
125 changed files with 1005 additions and 793 deletions

View File

@@ -62,13 +62,28 @@ describe('GetRacesPageDataUseCase', () => {
});
it('should present races page data for a league', async () => {
const races = [
type RaceRow = {
id: string;
track: string;
car: string;
scheduledAt: Date;
status: 'scheduled' | 'completed';
leagueId: string;
strengthOfField: number;
isUpcoming: () => boolean;
isLive: () => boolean;
isPast: () => boolean;
};
type LeagueRow = { id: string; name: string };
const races: RaceRow[] = [
{
id: 'race-1',
track: 'Track 1',
car: 'Car 1',
scheduledAt: new Date('2023-01-01T10:00:00Z'),
status: 'scheduled' as const,
status: 'scheduled',
leagueId: 'league-1',
strengthOfField: 1500,
isUpcoming: () => true,
@@ -80,16 +95,16 @@ describe('GetRacesPageDataUseCase', () => {
track: 'Track 2',
car: 'Car 2',
scheduledAt: new Date('2023-01-02T10:00:00Z'),
status: 'completed' as const,
status: 'completed',
leagueId: 'league-1',
strengthOfField: 1600,
isUpcoming: () => false,
isLive: () => false,
isPast: () => true,
},
] as any[];
];
const leagues = [{ id: 'league-1', name: 'League 1' }] as any[];
const leagues: LeagueRow[] = [{ id: 'league-1', name: 'League 1' }];
(raceRepository.findAll as Mock).mockResolvedValue(races);
(leagueRepository.findAll as Mock).mockResolvedValue(leagues);
@@ -103,14 +118,16 @@ describe('GetRacesPageDataUseCase', () => {
expect(result.unwrap()).toBeUndefined();
expect(output.present).toHaveBeenCalledTimes(1);
const presented = output.present.mock.calls[0][0]! as GetRacesPageDataResult;
const presentedRaw = output.present.mock.calls[0]?.[0];
expect(presentedRaw).toBeDefined();
const presented = presentedRaw as GetRacesPageDataResult;
expect(presented.leagueId).toBe('league-1');
expect(presented.races).toHaveLength(2);
expect(presented.races[0].race.id).toBe('race-1');
expect(presented.races[0].leagueName).toBe('League 1');
expect(presented.races[1].race.id).toBe('race-2');
expect(presented.races[0]!.race.id).toBe('race-1');
expect(presented.races[0]!.leagueName).toBe('League 1');
expect(presented.races[1]!.race.id).toBe('race-2');
});
it('should return repository error when repositories throw and not present data', async () => {