import { describe, test, expect } from 'vitest' import { sanitizeRangeDataItem, sanitizeRangeDataItems } from './serializer' import type { RangeDataItem } from './types' describe('sanitizeRangeDataItem', () => { test('preserves all other properties', () => { const item: RangeDataItem = { min: 10, max: 90, value: [20, 80], step: 5, marks: true, disabled: true, color: '#FF0000', } const sanitized = sanitizeRangeDataItem(item) expect(sanitized.min).toBe(10) expect(sanitized.max).toBe(90) expect(sanitized.value).toEqual([20, 80]) expect(sanitized.step).toBe(5) expect(sanitized.marks).toBe(true) expect(sanitized.disabled).toBe(true) expect(sanitized.color).toBe('#FF0000') }) }) describe('sanitizeRangeDataItems', () => { test('sanitizes array of items', () => { const items: RangeDataItem[] = [{ min: 10, max: 90 }] const sanitized = sanitizeRangeDataItems(items) expect(sanitized).toHaveLength(1) }) test('handles undefined input', () => { const sanitized = sanitizeRangeDataItems(undefined) expect(sanitized).toBeUndefined() }) test('handles empty array', () => { const sanitized = sanitizeRangeDataItems([]) expect(sanitized).toEqual([]) }) test('preserves all item properties', () => { const items: RangeDataItem[] = [ { min: 0, max: 100, value: [25, 75], step: 10, marks: [ { value: 0, label: '0' }, { value: 100, label: '100' }, ], disabled: false, color: '#00FF00', }, ] const sanitized = sanitizeRangeDataItems(items) expect(sanitized![0]).toEqual(items[0]) }) })