Yaltopia-Ticket-Admin/src/lib/__tests__/utils.test.ts
debudebuye 9c7e33499a
Some checks are pending
CI / Test & Build (18.x) (push) Waiting to run
CI / Test & Build (20.x) (push) Waiting to run
CI / Security Audit (push) Waiting to run
Deploy to Production / Deploy to Netlify/Vercel (push) Waiting to run
chore: Update dependencies, refactor ESLint config, and enhance test infrastructure
2026-02-26 11:18:40 +03:00

51 lines
1.4 KiB
TypeScript

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')
})
})