import { vi, describe, it, expect } from 'vitest'; import { useGetVideosFilterRequest } from '../use-get-videos-filter-request'; vi.mock('../../runtime', () => ({ getMultipleQuery: () => ({}), })); describe('useGetVideosFilterRequest', () => { it('всегда возвращает categories_filter_use_and', () => { const route = { query: {} } as any; const result = useGetVideosFilterRequest(route, [], []); expect(result.categories_filter_use_and).toBe(true); }); it('парсит строковые категории', () => { const route = { query: { categories: 'age_teen,body_slim' } } as any; const result = useGetVideosFilterRequest(route, [], []); expect(result.categories).toEqual(['teen', 'slim']); }); it('парсит массив категорий', () => { const route = { query: { categories: ['age_teen', 'body_slim,body_athletic'] } } as any; const result = useGetVideosFilterRequest(route, [], []); expect(result.categories).toEqual(['teen', 'slim', 'athletic']); }); it('убирает префикс группы из категории', () => { const route = { query: { categories: 'ethnicity_asian' } } as any; const result = useGetVideosFilterRequest(route, [], []); expect(result.categories).toEqual(['asian']); }); it('сохраняет _ в значении категории', () => { const route = { query: { categories: 'body_big_tits' } } as any; const result = useGetVideosFilterRequest(route, [], []); expect(result.categories).toEqual(['big_tits']); }); it('нет categories при пустом query', () => { const route = { query: {} } as any; const result = useGetVideosFilterRequest(route, [], []); expect(result.categories).toBeUndefined(); }); });