import { describe, it, expect } from 'vitest' import { cn } from '../utils' describe('cn utility', () => { it('should merge class names', () => { const result = cn('class1', 'class2') expect(result).toBe('class1 class2') }) it('should handle conditional classes', () => { const isConditional = true const isHidden = false const result = cn('base', isConditional && 'conditional', isHidden && 'hidden') expect(result).toBe('base conditional') }) it('should merge Tailwind classes correctly', () => { const result = cn('px-2 py-1', 'px-4') expect(result).toBe('py-1 px-4') }) it('should handle arrays of classes', () => { const result = cn(['class1', 'class2'], 'class3') expect(result).toBe('class1 class2 class3') }) it('should handle objects with boolean values', () => { const result = cn({ 'class1': true, 'class2': false, 'class3': true, }) expect(result).toBe('class1 class3') }) it('should handle undefined and null values', () => { const result = cn('class1', undefined, null, 'class2') expect(result).toBe('class1 class2') }) it('should handle empty input', () => { const result = cn() expect(result).toBe('') }) it('should merge conflicting Tailwind classes', () => { const result = cn('text-red-500', 'text-blue-500') expect(result).toBe('text-blue-500') }) })