import { render, screen, fireEvent } from '@testing-library/react'; import { describe, it, expect, vi } from 'vitest'; import { Button } from '../button'; describe('Button', () => { it('renders with children text', () => { render(); expect(screen.getByText('Click me')).toBeInTheDocument(); }); it('handles click events', () => { const onClick = vi.fn(); render(); fireEvent.click(screen.getByText('Click')); expect(onClick).toHaveBeenCalledOnce(); }); it('applies disabled state', () => { render(); expect(screen.getByText('Disabled')).toBeDisabled(); }); it('renders different variants without errors', () => { const { rerender } = render(); expect(screen.getByText('Default')).toBeInTheDocument(); rerender(); expect(screen.getByText('Ghost')).toBeInTheDocument(); rerender(); expect(screen.getByText('Outline')).toBeInTheDocument(); rerender(); expect(screen.getByText('Destructive')).toBeInTheDocument(); }); });