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