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');
});
});