import { describe, it, expect } from 'vitest'; import { convertModelToRoundCard } from '../convert-model-to-round-card'; describe('convertModelToRoundCard', () => { it('конвертирует модель в round card', () => { const model = { title: 'Model Name', primaryImageUrl: 'https://img.com/primary.jpg', thumbUrl: 'https://img.com/thumb.jpg', videosCount: 10, guid: 'm-1', parameters: [], }; const result = convertModelToRoundCard(model); expect(result.title).toBe('Model Name'); expect(result.primaryImageUrl).toBe('https://img.com/primary.jpg'); expect(result.videosCount).toBe(10); expect(result.link).toBe('/models/model-name'); }); it('без primaryImageUrl → использует thumbUrl', () => { const model = { title: 'Test', primaryImageUrl: '', thumbUrl: 'https://img.com/thumb.jpg', videosCount: 5, guid: 'm-2', parameters: [], }; const result = convertModelToRoundCard(model); expect(result.primaryImageUrl).toBe('https://img.com/thumb.jpg'); }); it('без обоих url → пустая строка', () => { const model = { title: 'Test', primaryImageUrl: '', thumbUrl: '', videosCount: 0, guid: 'm-3', parameters: [], }; const result = convertModelToRoundCard(model); expect(result.primaryImageUrl).toBe(''); }); it('slug с пробелами и заглавными', () => { const model = { title: 'Big Name Model', primaryImageUrl: 'url', thumbUrl: '', videosCount: 0, guid: 'm-4', parameters: [], }; const result = convertModelToRoundCard(model); expect(result.link).toBe('/models/big-name-model'); }); });