import { render, screen, fireEvent } from '@testing-library/react';
import { describe, expect, it, vi } from 'vitest';
import { Button } from '@/components/ui/button';
describe('Button Component', () => {
it('renders button with text', () => {
render();
expect(screen.getByRole('button', { name: 'Test Button' })).toBeInTheDocument();
});
it('handles click events', () => {
const handleClick = vi.fn();
render();
fireEvent.click(screen.getByRole('button', { name: 'Click me' }));
expect(handleClick).toHaveBeenCalledTimes(1);
});
it('can be disabled', () => {
render();
expect(screen.getByRole('button', { name: 'Disabled Button' })).toBeDisabled();
});
it('applies variant styles correctly', () => {
render();
const button = screen.getByRole('button', { name: 'Delete' });
expect(button).toHaveClass('bg-destructive');
});
});