fix core tests

This commit is contained in:
2025-12-23 20:09:02 +01:00
parent 7290fe69b5
commit b5431355ca
25 changed files with 415 additions and 211 deletions

View File

@@ -267,21 +267,47 @@ describe('ApplyPenaltyUseCase', () => {
});
expect(result.isOk()).toBe(true);
expect(result.value).toEqual({
penaltyId: expect.any(String),
});
expect(mockPenaltyRepo.create).toHaveBeenCalledWith(
expect.objectContaining({
leagueId: 'league1',
raceId: 'race1',
driverId: 'driver1',
type: 'time_penalty',
value: 5,
reason: 'Test penalty',
issuedBy: 'steward1',
status: 'pending',
notes: 'Test notes',
})
);
expect(result.unwrap()).toBeUndefined();
expect(output.present).toHaveBeenCalledTimes(1);
const presented = (output.present as Mock).mock.calls[0]?.[0] as ApplyPenaltyResult;
expect(presented).toEqual({ penaltyId: expect.any(String) });
expect(mockPenaltyRepo.create).toHaveBeenCalledTimes(1);
const createdPenalty = (mockPenaltyRepo.create as Mock).mock.calls[0]?.[0] as unknown as {
leagueId: unknown;
raceId: unknown;
driverId: unknown;
type: string;
value?: number;
reason: string;
issuedBy: unknown;
status: unknown;
notes?: string;
};
type ToStringable = { toString(): string };
const asString = (value: unknown): string => {
if (typeof value === 'string') return value;
if (
value &&
typeof value === 'object' &&
'toString' in value &&
typeof (value as ToStringable).toString === 'function'
) {
return (value as ToStringable).toString();
}
return String(value);
};
expect(asString(createdPenalty.leagueId)).toBe('league1');
expect(asString(createdPenalty.raceId)).toBe('race1');
expect(asString(createdPenalty.driverId)).toBe('driver1');
expect(createdPenalty.type).toBe('time_penalty');
expect(createdPenalty.value).toBe(5);
expect(createdPenalty.reason).toBe('Test penalty');
expect(asString(createdPenalty.issuedBy)).toBe('steward1');
expect(asString(createdPenalty.status)).toBe('pending');
expect(createdPenalty.notes).toBe('Test notes');
});
});