import { render, screen } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { Badge } from './badge'; import React from 'react'; describe('Badge', () => { it('renders correctly with default props', () => { render(Default); const badge = screen.getByText('Default'); expect(badge).toBeInTheDocument(); expect(badge).toHaveClass('bg-primary'); }); it('renders correctly with different variants', () => { const { rerender } = render(Secondary); expect(screen.getByText('Secondary')).toHaveClass('bg-secondary'); rerender(Destructive); expect(screen.getByText('Destructive')).toHaveClass('bg-destructive'); rerender(Outline); expect(screen.getByText('Outline')).toHaveClass('text-foreground'); }); it('renders as a child component when asChild is true', () => { render( Link Badge ); const link = screen.getByRole('link', { name: /link badge/i }); expect(link).toBeInTheDocument(); expect(link).toHaveClass('bg-primary'); }); it('applies custom className', () => { render(Custom); expect(screen.getByText('Custom')).toHaveClass('custom-badge'); }); });