import { describe, it, expect } from 'vitest'; import { LeagueAdminScheduleViewModel } from './LeagueAdminScheduleViewModel'; import type { LeagueScheduleRaceViewModel } from './LeagueScheduleViewModel'; describe('LeagueAdminScheduleViewModel', () => { it('exposes seasonId/published/races from constructor input', () => { const races: LeagueScheduleRaceViewModel[] = [ { id: 'race-1', name: 'Round 1', scheduledAt: new Date('2025-01-02T20:00:00Z'), isPast: false, isUpcoming: true, status: 'scheduled', }, ]; const vm = new LeagueAdminScheduleViewModel({ seasonId: 'season-1', published: true, races, }); expect(vm.seasonId).toBe('season-1'); expect(vm.published).toBe(true); expect(vm.races).toBe(races); expect(vm.races).toHaveLength(1); expect(typeof vm.seasonId).toBe('string'); expect(typeof vm.published).toBe('boolean'); expect(vm.races[0]?.scheduledAt).toBeInstanceOf(Date); }); it('keeps published as a boolean even when false', () => { const vm = new LeagueAdminScheduleViewModel({ seasonId: 'season-1', published: false, races: [], }); expect(vm.published).toBe(false); expect(typeof vm.published).toBe('boolean'); }); });