view data fixes
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 6m4s
Contract Testing / contract-snapshot (pull_request) Has been skipped

This commit is contained in:
2026-01-23 11:59:49 +01:00
parent ae58839eb2
commit d97f50ed72
191 changed files with 2889 additions and 1019 deletions

View File

@@ -1,17 +1,18 @@
import { describe, it, expect } from 'vitest';
import { ActivityItemViewModel } from './ActivityItemViewModel';
import { ActivityItemViewData } from '../view-data/ActivityItemViewData';
describe('ActivityItemViewModel', () => {
it('maps basic properties from input data', () => {
const data = {
it('maps basic properties from ActivityItemViewData', () => {
const viewData: ActivityItemViewData = {
id: 'activity-1',
type: 'race' as const,
type: 'race',
message: 'Test activity',
time: '2025-01-01T12:00:00Z',
impressions: 1234,
};
const viewModel = new ActivityItemViewModel(data);
const viewModel = new ActivityItemViewModel(viewData);
expect(viewModel.id).toBe('activity-1');
expect(viewModel.type).toBe('race');
@@ -40,7 +41,7 @@ describe('ActivityItemViewModel', () => {
type: 'unknown',
message: '',
time: '',
} as any);
});
expect(unknown.typeColor).toBe('bg-gray-500');
});
@@ -77,4 +78,19 @@ describe('ActivityItemViewModel', () => {
expect(noImpressions.formattedImpressions).toBeNull();
expect(zeroImpressions.formattedImpressions).toBeNull();
});
it('handles optional impressions field', () => {
const withoutImpressions: ActivityItemViewData = {
id: 'activity-5',
type: 'platform',
message: 'Platform activity',
time: '2025-01-01T12:00:00Z',
};
const viewModel = new ActivityItemViewModel(withoutImpressions);
expect(viewModel.impressions).toBeUndefined();
expect(viewModel.formattedImpressions).toBeNull();
});
});