import { render, screen } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { Badge } from '../badge'; describe('Badge', () => { it('renders children', () => { render(Test); expect(screen.getByText('Test')).toBeInTheDocument(); }); it('applies default variant classes', () => { const { container } = render(Default); const badge = container.firstChild as HTMLElement; expect(badge).toHaveClass('bg-muted'); }); it('applies primary variant classes', () => { const { container } = render(Primary); const badge = container.firstChild as HTMLElement; expect(badge).toHaveClass('bg-primary/10'); }); it('applies accent variant classes', () => { const { container } = render(Accent); const badge = container.firstChild as HTMLElement; expect(badge).toHaveClass('bg-accent/10'); }); it('applies warning variant classes', () => { const { container } = render(Warning); const badge = container.firstChild as HTMLElement; expect(badge).toHaveClass('bg-warning/10'); }); it('applies destructive variant classes', () => { const { container } = render(Destructive); const badge = container.firstChild as HTMLElement; expect(badge).toHaveClass('bg-destructive/10'); }); it('applies outline variant classes', () => { const { container } = render(Outline); const badge = container.firstChild as HTMLElement; expect(badge).toHaveClass('bg-transparent'); }); it('merges custom className', () => { const { container } = render(X); expect((container.firstChild as HTMLElement)).toHaveClass('my-custom'); }); });