view data fixes
This commit is contained in:
@@ -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();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user