import { describe, it, expect } from 'vitest'; import { groupParametersByGroup } from '../group-parameters-by-group'; function param(name: string, groupName: string, order: number, isFilter = false) { return { name, title: name.toUpperCase(), values: [], kind: 'select' as const, is_filter: isFilter, icon: '', group: { name: groupName, title: `${groupName}-title`, order }, }; } describe('groupParametersByGroup', () => { it('группирует по group.name и сортирует группы по order', () => { const result = groupParametersByGroup([ param('a', 'second', 2), param('b', 'first', 1), ]); expect(result.map(g => g.title)).toEqual(['first-title', 'second-title']); }); it('собирает несколько параметров одной группы в items', () => { const result = groupParametersByGroup([ param('a', 'g', 1), param('b', 'g', 1), ]); expect(result).toHaveLength(1); expect(result[0].items.map(i => i.name)).toEqual(['a', 'b']); }); it('переименовывает is_filter → isFilter', () => { const result = groupParametersByGroup([param('a', 'g', 1, true)]); expect(result[0].items[0].isFilter).toBe(true); }); it('пустой список → []', () => { expect(groupParametersByGroup([])).toEqual([]); }); });