import type { HomeDiscoveryViewData } from '@/lib/view-data/HomeDiscoveryViewData'; import { describe, expect, it } from 'vitest'; import { HomeDiscoveryViewModel } from './HomeDiscoveryViewModel'; describe('HomeDiscoveryViewModel', () => { it('exposes the discovery collections from ViewData', () => { const viewData: HomeDiscoveryViewData = { topLeagues: [{ id: 'league-1', name: 'Pro League', description: 'Top-tier league' }], teams: [{ id: 'team-1', name: 'Team Alpha', description: 'Serious endurance', logoUrl: undefined }], upcomingRaces: [ { id: 'race-1', track: 'Spa-Francorchamps', car: 'GT3', formattedDate: 'Jan 1' }, ], }; const viewModel = new HomeDiscoveryViewModel(viewData); expect(viewModel.topLeagues).toBe(viewData.topLeagues); expect(viewModel.teams).toBe(viewData.teams); expect(viewModel.upcomingRaces).toBe(viewData.upcomingRaces); }); it('provides basic UI helper booleans', () => { const viewData: HomeDiscoveryViewData = { topLeagues: [], teams: [{ id: 'team-1', name: 'Team Alpha', description: 'Serious endurance' }], upcomingRaces: [], }; const viewModel = new HomeDiscoveryViewModel(viewData); expect(viewModel.hasTopLeagues).toBe(false); expect(viewModel.hasTeams).toBe(true); expect(viewModel.hasUpcomingRaces).toBe(false); }); });