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

describe('LinkButton', () => {
  it('renders an accent link with optional className and data-testid', () => {
    render(
      <LinkButton href="/fixture" className="mt-2" data-testid="fixture-link">
        Open fixture
      </LinkButton>,
    )

    const link = screen.getByTestId('fixture-link')
    expect(link).toHaveAttribute('href', '/fixture')
    expect(link).toHaveClass('mt-2')
    expect(link).toHaveTextContent('Open fixture')
  })

  it('renders an accent button with disabled support', () => {
    const onClick = vi.fn()
    render(
      <LinkButton onClick={onClick} disabled>
        Apply fixture
      </LinkButton>,
    )

    const button = screen.getByRole('button', { name: 'Apply fixture' })
    expect(button).toBeDisabled()
    fireEvent.click(button)
    expect(onClick).not.toHaveBeenCalled()
  })
})