fix issues
This commit is contained in:
@@ -17,7 +17,7 @@ describe('ProtestService', () => {
|
||||
requestDefense: vi.fn(),
|
||||
reviewProtest: vi.fn(),
|
||||
getRaceProtests: vi.fn(),
|
||||
} as Mocked<ProtestsApiClient>;
|
||||
} as unknown as Mocked<ProtestsApiClient>;
|
||||
|
||||
service = new ProtestService(mockApiClient);
|
||||
});
|
||||
@@ -43,7 +43,7 @@ describe('ProtestService', () => {
|
||||
},
|
||||
};
|
||||
|
||||
mockApiClient.getLeagueProtests.mockResolvedValue(mockDto);
|
||||
mockApiClient.getLeagueProtests.mockResolvedValue(mockDto as any);
|
||||
|
||||
const result = await service.getLeagueProtests(leagueId);
|
||||
|
||||
@@ -85,7 +85,7 @@ describe('ProtestService', () => {
|
||||
},
|
||||
};
|
||||
|
||||
mockApiClient.getLeagueProtest.mockResolvedValue(mockDto);
|
||||
mockApiClient.getLeagueProtest.mockResolvedValue(mockDto as any);
|
||||
|
||||
const result = await service.getProtestById(leagueId, protestId);
|
||||
|
||||
@@ -135,7 +135,7 @@ describe('ProtestService', () => {
|
||||
|
||||
mockApiClient.applyPenalty.mockResolvedValue(undefined);
|
||||
|
||||
await service.applyPenalty(input);
|
||||
await service.applyPenalty(input as any);
|
||||
|
||||
expect(mockApiClient.applyPenalty).toHaveBeenCalledWith(input);
|
||||
});
|
||||
@@ -151,7 +151,7 @@ describe('ProtestService', () => {
|
||||
|
||||
mockApiClient.requestDefense.mockResolvedValue(undefined);
|
||||
|
||||
await service.requestDefense(input);
|
||||
await service.requestDefense(input as any);
|
||||
|
||||
expect(mockApiClient.requestDefense).toHaveBeenCalledWith(input);
|
||||
});
|
||||
@@ -170,7 +170,10 @@ describe('ProtestService', () => {
|
||||
|
||||
await service.reviewProtest(input);
|
||||
|
||||
expect(mockApiClient.reviewProtest).toHaveBeenCalledWith(input);
|
||||
expect(mockApiClient.reviewProtest).toHaveBeenCalledWith({
|
||||
...input,
|
||||
enum: 'uphold',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -185,7 +188,7 @@ describe('ProtestService', () => {
|
||||
driverMap: {},
|
||||
};
|
||||
|
||||
mockApiClient.getRaceProtests.mockResolvedValue(mockDto);
|
||||
mockApiClient.getRaceProtests.mockResolvedValue(mockDto as any);
|
||||
|
||||
const result = await service.findByRaceId(raceId);
|
||||
|
||||
|
||||
@@ -49,12 +49,15 @@ export class ProtestService {
|
||||
if (!protest) return null;
|
||||
|
||||
const race = Object.values(dto.racesById)[0];
|
||||
|
||||
if (!race) return null;
|
||||
|
||||
// Cast to the correct type for indexing
|
||||
const driversById = dto.driversById as unknown as Record<string, DriverDTO>;
|
||||
const protestingDriver = driversById[protest.protestingDriverId];
|
||||
const accusedDriver = driversById[protest.accusedDriverId];
|
||||
|
||||
if (!protestingDriver || !accusedDriver) return null;
|
||||
|
||||
return {
|
||||
protest: new ProtestViewModel(protest),
|
||||
race: new RaceViewModel(race),
|
||||
@@ -81,13 +84,18 @@ export class ProtestService {
|
||||
* Review protest
|
||||
*/
|
||||
async reviewProtest(input: { protestId: string; stewardId: string; decision: string; decisionNotes: string }): Promise<void> {
|
||||
const normalizedDecision = input.decision.toLowerCase();
|
||||
const enumValue: ReviewProtestCommandDTO['enum'] =
|
||||
normalizedDecision === 'uphold' || normalizedDecision === 'upheld' ? 'uphold' : 'dismiss';
|
||||
|
||||
const command: ReviewProtestCommandDTO = {
|
||||
protestId: input.protestId,
|
||||
stewardId: input.stewardId,
|
||||
enum: input.decision === 'uphold' ? 'uphold' : 'dismiss',
|
||||
enum: enumValue,
|
||||
decision: input.decision,
|
||||
decisionNotes: input.decisionNotes
|
||||
decisionNotes: input.decisionNotes,
|
||||
};
|
||||
|
||||
await this.apiClient.reviewProtest(command);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user