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() }) })