resolve manual DTOs
This commit is contained in:
@@ -102,8 +102,10 @@ describe('RaceResultsService', () => {
|
||||
const input = { raceId, results: [{ position: 1 }] };
|
||||
|
||||
const mockDto = {
|
||||
success: true,
|
||||
raceId,
|
||||
importedCount: 10,
|
||||
driversProcessed: 10,
|
||||
resultsRecorded: 10,
|
||||
errors: ['Error 1'],
|
||||
};
|
||||
|
||||
@@ -114,7 +116,8 @@ describe('RaceResultsService', () => {
|
||||
expect(mockApiClient.importResults).toHaveBeenCalledWith(raceId, input);
|
||||
expect(result).toBeInstanceOf(ImportRaceResultsSummaryViewModel);
|
||||
expect(result.raceId).toBe(raceId);
|
||||
expect(result.importedCount).toBe(10);
|
||||
expect(result.driversProcessed).toBe(10);
|
||||
expect(result.resultsRecorded).toBe(10);
|
||||
expect(result.errors).toEqual(['Error 1']);
|
||||
});
|
||||
|
||||
@@ -123,8 +126,10 @@ describe('RaceResultsService', () => {
|
||||
const input = { raceId, results: [] };
|
||||
|
||||
const mockDto = {
|
||||
success: true,
|
||||
raceId,
|
||||
importedCount: 5,
|
||||
driversProcessed: 5,
|
||||
resultsRecorded: 5,
|
||||
errors: [],
|
||||
};
|
||||
|
||||
@@ -132,7 +137,8 @@ describe('RaceResultsService', () => {
|
||||
|
||||
const result = await service.importResults(raceId, input);
|
||||
|
||||
expect(result.importedCount).toBe(5);
|
||||
expect(result.driversProcessed).toBe(5);
|
||||
expect(result.resultsRecorded).toBe(5);
|
||||
expect(result.errors).toEqual([]);
|
||||
});
|
||||
|
||||
|
||||
@@ -2,15 +2,16 @@ import { RacesApiClient } from '../../api/races/RacesApiClient';
|
||||
import { RaceResultsDetailViewModel } from '../../view-models/RaceResultsDetailViewModel';
|
||||
import { RaceWithSOFViewModel } from '../../view-models/RaceWithSOFViewModel';
|
||||
import { ImportRaceResultsSummaryViewModel } from '../../view-models/ImportRaceResultsSummaryViewModel';
|
||||
import type { ImportRaceResultsDTO } from '../../types/generated/ImportRaceResultsDTO';
|
||||
|
||||
// TODO: Move this type to apps/website/lib/types/generated when available
|
||||
type ImportRaceResultsInputDto = { raceId: string; results: Array<unknown> };
|
||||
|
||||
// TODO: Move this type to apps/website/lib/types/generated when available
|
||||
// Define types
|
||||
type ImportRaceResultsInputDto = ImportRaceResultsDTO;
|
||||
type ImportRaceResultsSummaryDto = {
|
||||
success: boolean;
|
||||
raceId: string;
|
||||
importedCount: number;
|
||||
errors: string[];
|
||||
driversProcessed: number;
|
||||
resultsRecorded: number;
|
||||
errors?: string[];
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -41,10 +42,10 @@ export class RaceResultsService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Import race results and get summary
|
||||
*/
|
||||
async importResults(raceId: string, input: ImportRaceResultsInputDto): Promise<ImportRaceResultsSummaryViewModel> {
|
||||
const dto = await this.apiClient.importResults(raceId, input) as ImportRaceResultsSummaryDto;
|
||||
return new ImportRaceResultsSummaryViewModel(dto);
|
||||
}
|
||||
* Import race results and get summary
|
||||
*/
|
||||
async importResults(raceId: string, input: ImportRaceResultsInputDto): Promise<ImportRaceResultsSummaryViewModel> {
|
||||
const dto = await this.apiClient.importResults(raceId, input);
|
||||
return new ImportRaceResultsSummaryViewModel(dto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user