chore: format codebase and move SectionAccordion to entities/Section

This commit is contained in:
Ilia Mashkov
2026-04-23 20:52:43 +03:00
parent 8aff27f8ac
commit 1d333fd945
73 changed files with 1201 additions and 1153 deletions
+21 -21
View File
@@ -1,40 +1,40 @@
import { describe, it, expect } from 'vitest'
import { cn } from './cn'
import { describe, it, expect } from 'vitest';
import { cn } from './cn';
describe('cn', () => {
describe('basic merging', () => {
it('returns single class unchanged', () => {
expect(cn('foo')).toBe('foo')
})
expect(cn('foo')).toBe('foo');
});
it('joins multiple classes', () => {
expect(cn('foo', 'bar')).toBe('foo bar')
})
})
expect(cn('foo', 'bar')).toBe('foo bar');
});
});
describe('conditional classes', () => {
it('includes truthy conditional', () => {
expect(cn('foo', true && 'bar')).toBe('foo bar')
})
expect(cn('foo', true && 'bar')).toBe('foo bar');
});
it('excludes falsy conditional', () => {
expect(cn('foo', false && 'bar')).toBe('foo')
})
})
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')
})
})
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')
})
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')
})
})
})
expect(cn('text-red-500', 'text-blue-500')).toBe('text-blue-500');
});
});
});