import { describe, expect, it } from 'vitest'; import type { ImportRaceResultsSummaryViewData } from '../view-data/ImportRaceResultsSummaryViewData'; import { ImportRaceResultsSummaryViewModel } from './ImportRaceResultsSummaryViewModel'; describe('ImportRaceResultsSummaryViewModel', () => { it('exposes view data fields', () => { const viewData: ImportRaceResultsSummaryViewData = { success: true, raceId: 'race-1', driversProcessed: 10, resultsRecorded: 8, errors: ['Driver missing', 'Invalid lap time'], }; const viewModel = new ImportRaceResultsSummaryViewModel(viewData); expect(viewModel.success).toBe(true); expect(viewModel.raceId).toBe('race-1'); expect(viewModel.driversProcessed).toBe(10); expect(viewModel.resultsRecorded).toBe(8); expect(viewModel.errors).toEqual(['Driver missing', 'Invalid lap time']); }); it('derives hasErrors UI helper', () => { const viewDataWithErrors: ImportRaceResultsSummaryViewData = { success: false, raceId: 'race-2', driversProcessed: 0, resultsRecorded: 0, errors: ['Some error'], }; const viewDataWithoutErrors: ImportRaceResultsSummaryViewData = { success: false, raceId: 'race-3', driversProcessed: 0, resultsRecorded: 0, errors: [], }; expect(new ImportRaceResultsSummaryViewModel(viewDataWithErrors).hasErrors).toBe(true); expect(new ImportRaceResultsSummaryViewModel(viewDataWithoutErrors).hasErrors).toBe(false); }); });