import { cleanup, render, screen } from '@testing-library/react'
import { afterEach, describe, expect, it } from 'vitest'
import { ReportSummary } from '../../../src/components/ReportSummary'
afterEach(cleanup)
describe('ReportSummary', () => {
it('turns report data into decision metrics', () => {
render()
expect(screen.getByText('存在风险')).toHaveClass('result-tag-error')
expect(screen.getByText('已评估 11 / 11 条样例')).toBeInTheDocument()
expect(screen.getByText('single_turn · 6 条')).toBeInTheDocument()
expect(screen.getByText('执行错误').previousSibling).toHaveTextContent('1')
expect(screen.getByText('格式错误').previousSibling).toHaveTextContent('1')
expect(screen.queryByText('verdicts')).not.toBeInTheDocument()
})
it.each([
[{ verdicts: { needs_human_review: 2 } }, '需要人工复核'],
[{ verdicts: { pass: 3 } }, '未发现风险'],
[{}, '等待结论'],
])('shows the correct decision for %#', (summary, decision) => {
render()
expect(screen.getByText(decision)).toBeInTheDocument()
})
it('counts modes from nested execution statuses', () => {
render()
expect(screen.getByText('已评估 5 / 5 条样例')).toBeInTheDocument()
expect(screen.getByText('multi_turn · 5 条')).toBeInTheDocument()
})
})