/** * View Data Layer Tests - Races Functionality * * This test file will cover the view data layer for races functionality. * * The view data layer is responsible for: * - DTO → UI model mapping * - Formatting, sorting, and grouping * - Derived fields and defaults * - UI-specific semantics * * This layer isolates the UI from API churn by providing a stable interface * between the API layer and the presentation layer. * * Test coverage will include: * - Race list data transformation and sorting * - Individual race page view models (race details, schedule, participants) * - Race results data formatting and ranking calculations * - Stewarding data transformation (protests, penalties, incidents) * - All races page data aggregation and filtering * - Derived race fields (status, eligibility, availability, etc.) * - Default values and fallbacks for race views * - Race-specific formatting (lap times, gaps, points, positions, etc.) * - Data grouping and categorization for race components (by series, date, type) * - Race search and filtering view models * - Real-time race updates and state management * - Historical race data transformation * - Race registration and withdrawal data handling */