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