import { cn } from './cn'; describe('cn', () => { describe('basic merging', () => { it('returns single class unchanged', () => { expect(cn('foo')).toBe('foo'); }); it('joins multiple classes', () => { expect(cn('foo', 'bar')).toBe('foo bar'); }); }); describe('conditional classes', () => { it('includes truthy conditional', () => { expect(cn('foo', true && 'bar')).toBe('foo bar'); }); it('excludes falsy conditional', () => { expect(cn('foo', false && 'bar')).toBe('foo'); }); }); describe('object syntax', () => { it('includes classes with truthy object values', () => { expect(cn({ foo: true, bar: false })).toBe('foo'); }); }); describe('tailwind conflict resolution', () => { it('last padding wins', () => { expect(cn('px-2', 'px-4')).toBe('px-4'); }); it('last text color wins', () => { expect(cn('text-red-500', 'text-blue-500')).toBe('text-blue-500'); }); }); });