29 lines
818 B
TypeScript
29 lines
818 B
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { UpcomingRaceCardViewModel } from './UpcomingRaceCardViewModel';
|
|
|
|
describe('UpcomingRaceCardViewModel', () => {
|
|
const baseDto = {
|
|
id: 'race-1',
|
|
track: 'Spa-Francorchamps',
|
|
car: 'GT3',
|
|
scheduledAt: '2025-01-01T20:00:00Z',
|
|
};
|
|
|
|
it('maps DTO fields', () => {
|
|
const viewModel = new UpcomingRaceCardViewModel(baseDto);
|
|
|
|
expect(viewModel.id).toBe('race-1');
|
|
expect(viewModel.track).toBe('Spa-Francorchamps');
|
|
expect(viewModel.car).toBe('GT3');
|
|
expect(viewModel.scheduledAt).toBe('2025-01-01T20:00:00Z');
|
|
});
|
|
|
|
it('formats date label with month and day', () => {
|
|
const viewModel = new UpcomingRaceCardViewModel(baseDto);
|
|
|
|
const formatted = viewModel.formattedDate;
|
|
|
|
expect(formatted).toMatch(/\d{1,2}/);
|
|
});
|
|
});
|