eigent/test/unit/utils.test.ts

46 lines
1.3 KiB
TypeScript

// Example unit test for utility functions
import { describe, it, expect } from 'vitest'
import { cn } from '@/lib/utils'
describe('utils', () => {
describe('cn function', () => {
it('should merge class names correctly', () => {
const result = cn('class1', 'class2')
expect(result).toBe('class1 class2')
})
it('should handle conditional classes', () => {
const result = cn('base', true && 'conditional', false && 'hidden')
expect(result).toBe('base conditional')
})
it('should handle object-style classes', () => {
const result = cn('base', {
'active': true,
'disabled': false
})
expect(result).toBe('base active')
})
it('should merge conflicting Tailwind classes correctly', () => {
// twMerge should handle conflicting classes
const result = cn('p-2', 'p-4')
expect(result).toBe('p-4')
})
it('should handle empty inputs', () => {
const result = cn()
expect(result).toBe('')
})
it('should handle null and undefined inputs', () => {
const result = cn('base', null, undefined, 'valid')
expect(result).toBe('base valid')
})
it('should handle arrays of classes', () => {
const result = cn(['class1', 'class2'], 'class3')
expect(result).toBe('class1 class2 class3')
})
})
})