fix issues in core
This commit is contained in:
@@ -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 () => {
|
||||
|
||||
Reference in New Issue
Block a user