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()
})
})