import { describe, expect, it, vi } from 'vitest' import { Button } from '@/components/ui/button' import { render, screen, userEvent } from '@/test/render' describe('Button', () => { it('renders its children', () => { render() expect(screen.getByRole('button', { name: 'Send SMS' })).toBeInTheDocument() }) it('applies the destructive variant classes', () => { render() expect(screen.getByRole('button', { name: 'Delete' })).toHaveClass( 'bg-destructive' ) }) it('fires onClick when pressed', async () => { const onClick = vi.fn() render() await userEvent.click(screen.getByRole('button', { name: 'Click' })) expect(onClick).toHaveBeenCalledOnce() }) it('does not fire onClick when disabled', async () => { const onClick = vi.fn() render( ) await userEvent.click(screen.getByRole('button', { name: 'Disabled' })) expect(onClick).not.toHaveBeenCalled() }) })