fix core tests
This commit is contained in:
@@ -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');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user