import { describe, it, expect } from 'vitest'; import { getSliderRangeInfo } from '../get-slider-range-info'; describe('getSliderRangeInfo', () => { it('возвращает min/max/step для числовых опций', () => { const result = getSliderRangeInfo([{ name: '18' }, { name: '40' }, { name: '25' }]); expect(result).toEqual({ min: 18, max: 40, step: 1 }); }); it('сортирует значения перед расчётом', () => { const result = getSliderRangeInfo([{ name: '100' }, { name: '5' }]); expect(result?.min).toBe(5); expect(result?.max).toBe(100); }); it('step = 0 для единственного значения', () => { expect(getSliderRangeInfo([{ name: '18' }])?.step).toBe(0); }); it('null когда нет числовых опций', () => { expect(getSliderRangeInfo([{ name: 'abc' }, { name: 'xyz' }])).toBeNull(); }); it('отбрасывает нечисловые опции', () => { const result = getSliderRangeInfo([{ name: '18' }, { name: 'abc' }, { name: '40' }]); expect(result).toEqual({ min: 18, max: 40, step: 1 }); }); });