import { describe, it, expect } from 'vitest'; import { buildFilterQuery } from '../build-filter-query'; describe('buildFilterQuery', () => { it('строит строку категорий из filterValue', () => { const result = buildFilterQuery({ currentQuery: {}, filterValue: { age: '18', body: 'slim' }, durationValue: '', addedValue: '', }); expect(result.categories).toBe('age_18,body_slim'); }); it('добавляет duration и added когда заданы', () => { const result = buildFilterQuery({ currentQuery: {}, filterValue: {}, durationValue: '10', addedValue: 'week', }); expect(result.duration).toBe('10'); expect(result.added).toBe('week'); }); it('categories = undefined когда фильтров нет', () => { const result = buildFilterQuery({ currentQuery: {}, filterValue: {}, durationValue: '', addedValue: '', }); expect(result.categories).toBeUndefined(); }); it('сохраняет sort и сбрасывает page', () => { const result = buildFilterQuery({ currentQuery: { sort: 'new', page: '3' }, filterValue: { age: '18' }, durationValue: '', addedValue: '', }); expect(result.sort).toBe('new'); expect(result.page).toBeUndefined(); }); it('отбрасывает пустые значения filterValue', () => { const result = buildFilterQuery({ currentQuery: {}, filterValue: { age: '18', body: '' }, durationValue: '', addedValue: '', }); expect(result.categories).toBe('age_18'); }); });