import { render, screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import { CI_REPO_SUMMARY } from './fixtures/ci-trains'
import { resolveCiRepoGaps } from './ci-coverage'
import { CiCoverageBanner } from './CiCoverageBanner'

vi.mock('./DeckTooltip', () => ({
  useDeckTooltip: (tipb: string, tips?: string) => ({
    'data-tipb': tipb,
    'data-tips': tips,
  }),
}))

describe('CiCoverageBanner', () => {
  it('renders headline, action, and tooltip detail', () => {
    const gap = resolveCiRepoGaps({
      ...CI_REPO_SUMMARY,
      runnersComplete: false,
      degraded: ['pagination'],
    }).find((entry) => entry.headline === 'Runner list truncated')!
    render(<CiCoverageBanner repoPrefix="alexcodeplace/multideal" gaps={[gap]} />)

    const headline = screen.getByText('alexcodeplace/multideal: Runner list truncated')
    expect(screen.getByText(gap.action)).toBeInTheDocument()
    expect(headline.closest('[data-tips]')).toHaveAttribute(
      'data-tips',
      `${gap.detail} ${gap.action}`,
    )
  })
})
