import { render, screen, fireEvent } from '@testing-library/react'; import { test, expect, vi } from 'vitest'; import SearchResults from '../../src/components/SearchResults'; test('renders result count, titles, and highlighted snippets', () => { render( 中文全文检索。', lineNumber: null, }, ]} onJumpToResult={vi.fn()} /> ); expect(screen.getByTestId('search-results-count')).toHaveTextContent('1 条与「检索」相关的结果'); expect(screen.getByText('架构设计.md')).toBeInTheDocument(); expect(document.querySelector('em')).toHaveTextContent('中文全文检索'); }); test('clicking a result calls onJumpToResult with its key', () => { const onJumpToResult = vi.fn(); render( ); fireEvent.click(screen.getByTestId('search-result-产品文档/架构设计.md')); expect(onJumpToResult).toHaveBeenCalledWith('产品文档/架构设计.md'); }); test('shows an empty state when there are no results', () => { render(); expect(screen.getByTestId('search-no-results')).toBeInTheDocument(); });