import { fireEvent, render, screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import { IconButton } from './IconButton'

describe('IconButton', () => {
  it('exposes its label and fires clicks on the icon', () => {
    const onClick = vi.fn()
    render(
      <IconButton
        label="Abandon (soft delete)"
        tooltip="Abandon — nothing is hard-deleted"
        tone="danger"
        onClick={onClick}
        icon={<svg aria-hidden="true" />}
      />,
    )

    const button = screen.getByRole('button', { name: 'Abandon (soft delete)' })
    expect(button.querySelector('svg')).not.toBeNull()
    fireEvent.click(button)
    expect(onClick).toHaveBeenCalledTimes(1)
  })
})