import { describe, it, expect } from 'vitest'; import { cleanVideoData } from '../clean-video-data'; describe('cleanVideoData', () => { it('полные данные', () => { const raw = { guid: 'v-1', md5: 'abc', duration: 600, title: 'Title', header: 'Header', views: 1000, likes: 100, id: 'id-1', tags: 'tag1', models: 'model1', categories: 'cat1', actions: { liked: true }, channel: { name: 'Channel', avatar_url: 'https://img.com/ch.jpg' }, url: '/video/1', preview_url: 'https://img.com/preview.mp4', thumb_urls: { webp: { '320x180': 'small' } }, vtt_url: '/vtt', vtt_sprite_url: '/sprite', created: 1700000000, video_url: '/stream', is_deleted: false, thumb_number: 5, description: 'desc', dislikes: 3, }; const result = cleanVideoData(raw as any); expect(result.guid).toBe('v-1'); expect(result.channelName).toBe('Channel'); expect(result.thumbUrls).toEqual({ webp: { '320x180': 'small' } }); expect(result.vttUrl).toBe('/vtt'); expect(result.videoUrl).toBe('/stream'); expect(result.isDeleted).toBe(false); expect(result.thumbNum).toBe(5); }); it('пустые данные → дефолты', () => { const result = cleanVideoData({} as any); expect(result.guid).toBe(''); expect(result.duration).toBe(0); expect(result.views).toBe(0); expect(result.likes).toBe(0); expect(result.channelName).toBe(''); expect(result.channelAvatar).toBe(''); expect(result.thumbUrls).toBeUndefined(); expect(result.isDeleted).toBe(false); expect(result.created).toBe(0); expect(result.actions).toBe(null); expect(result.dislikes).toBe(0); }); });