mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2026-04-06 01:25:38 +00:00
35 lines
911 B
TypeScript
35 lines
911 B
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { cn } from './cn'
|
|
|
|
describe('cn', () => {
|
|
it('merges class names', () => {
|
|
expect(cn('foo', 'bar')).toBe('foo bar')
|
|
})
|
|
|
|
it('handles conditional classes with false', () => {
|
|
expect(cn('foo', false, 'baz')).toBe('foo baz')
|
|
})
|
|
|
|
it('handles conditional classes with string', () => {
|
|
expect(cn('foo', 'bar', 'baz')).toBe('foo bar baz')
|
|
})
|
|
|
|
it('handles undefined and null', () => {
|
|
expect(cn('foo', undefined, null, 'bar')).toBe('foo bar')
|
|
})
|
|
|
|
it('merges conflicting Tailwind classes', () => {
|
|
expect(cn('px-2 py-1', 'px-4')).toBe('py-1 px-4')
|
|
expect(cn('text-red-500', 'text-blue-500')).toBe('text-blue-500')
|
|
})
|
|
|
|
it('handles arrays', () => {
|
|
expect(cn(['foo', 'bar'], 'baz')).toBe('foo bar baz')
|
|
})
|
|
|
|
it('handles objects', () => {
|
|
expect(cn({ foo: true, bar: false, baz: true })).toBe('foo baz')
|
|
})
|
|
})
|