wip league admin tools
This commit is contained in:
@@ -2,28 +2,36 @@ import { describe, it, expect } from 'vitest';
|
||||
import { LeagueScheduleViewModel } from './LeagueScheduleViewModel';
|
||||
|
||||
describe('LeagueScheduleViewModel', () => {
|
||||
it('maps races array from DTO', () => {
|
||||
const races = [{ id: 'race-1' }, { id: 'race-2' }];
|
||||
it('exposes raceCount/hasRaces based on provided races', () => {
|
||||
const vm = new LeagueScheduleViewModel([
|
||||
{
|
||||
id: 'race-1',
|
||||
name: 'Round 1',
|
||||
scheduledAt: new Date('2025-01-02T20:00:00Z'),
|
||||
isPast: false,
|
||||
isUpcoming: true,
|
||||
status: 'scheduled',
|
||||
},
|
||||
{
|
||||
id: 'race-2',
|
||||
name: 'Round 2',
|
||||
scheduledAt: new Date('2024-12-31T20:00:00Z'),
|
||||
isPast: true,
|
||||
isUpcoming: false,
|
||||
status: 'completed',
|
||||
},
|
||||
]);
|
||||
|
||||
const vm = new LeagueScheduleViewModel({ races });
|
||||
|
||||
expect(vm.races).toBe(races);
|
||||
expect(vm.raceCount).toBe(2);
|
||||
});
|
||||
|
||||
it('derives hasRaces correctly for non-empty schedule', () => {
|
||||
const races = [{ id: 'race-1' }];
|
||||
|
||||
const vm = new LeagueScheduleViewModel({ races });
|
||||
|
||||
expect(vm.raceCount).toBe(1);
|
||||
expect(vm.hasRaces).toBe(true);
|
||||
expect(vm.races).toHaveLength(2);
|
||||
});
|
||||
|
||||
it('derives hasRaces correctly for empty schedule', () => {
|
||||
const vm = new LeagueScheduleViewModel({ races: [] });
|
||||
it('handles empty schedules', () => {
|
||||
const vm = new LeagueScheduleViewModel([]);
|
||||
|
||||
expect(vm.raceCount).toBe(0);
|
||||
expect(vm.hasRaces).toBe(false);
|
||||
expect(vm.races).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user