import { fireEvent, render, screen } from '@testing-library/react'
import { describe, expect, it } from 'vitest'
import { CLUSTER_QUEUE_FIXTURE } from './fixtures/offload'
import { ClusterQueue } from './ClusterQueue'

describe('ClusterQueue', () => {
  it('renders tickets and wedge row', () => {
    render(<ClusterQueue queue={CLUSTER_QUEUE_FIXTURE} />)
    expect(screen.getByTestId('cluster-queue')).toBeInTheDocument()
    expect(screen.getByText('tsc-2279')).toBeInTheDocument()
    expect(screen.getByTestId('cluster-queue-wedge')).toBeInTheDocument()
    expect(screen.getByText(/dispatch → debian1/)).toBeInTheDocument()
  })

  it('reorders rows when a sortable header is clicked', () => {
    render(<ClusterQueue queue={CLUSTER_QUEUE_FIXTURE} />)

    fireEvent.click(screen.getByRole('button', { name: /^Wait/ }))
    const rows = screen.getAllByRole('row').slice(1)
    expect(rows[0]).toHaveTextContent('dispatch to debian1 wedged')
    expect(rows[1]).toHaveTextContent('vitest-3341')
    expect(rows[2]).toHaveTextContent('tsc-2279')
  })
})
