import { describe, it, expect } from 'vitest'; import { cleanVideoCard } from '../clean-video-card'; describe('cleanVideoCard', () => { it('полные данные', () => { const raw = { guid: 'v-1', duration: 600, title: 'Video Title', views: 1000, id: 'id-1', tags: 'tag1,tag2', is_new: true, channel: { avatar_url: 'https://img.com/ch.jpg', name: 'Channel' }, url: '/video/1', preview_url: 'https://img.com/preview.mp4', thumb_urls: { webp: { '320x180': 'https://img.com/s.webp', '480x270': 'https://img.com/m.webp', }, }, md5: 'abc', thumb_number: 3, models: [{ title: 'Model A' }, { title: 'Model B' }], }; const result = cleanVideoCard(raw as any); expect(result.guid).toBe('v-1'); expect(result.isNew).toBe(true); expect(result.channelName).toBe('Channel'); expect(result.channelAvatar).toBe('https://img.com/ch.jpg'); expect(result.models).toEqual(['Model A', 'Model B']); expect(result.thumbNum).toBe(3); expect(result.thumbUrls).toEqual({ webp: { '320x180': 'https://img.com/s.webp', '480x270': 'https://img.com/m.webp', }, }); }); it('пустые данные → дефолты', () => { const result = cleanVideoCard({} as any); expect(result.guid).toBe(''); expect(result.duration).toBe(0); expect(result.views).toBe(0); expect(result.isNew).toBe(false); expect(result.channelAvatar).toBe(''); expect(result.channelName).toBe(''); expect(result.thumbUrls).toBeUndefined(); expect(result.models).toEqual([]); expect(result.thumbNum).toBe(0); }); });