mirror of
https://github.com/eigent-ai/eigent.git
synced 2026-05-02 05:30:21 +00:00
46 lines
1.3 KiB
TypeScript
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')
|
|
})
|
|
})
|
|
})
|