import { mockAppRoot } from '@rocket.chat/mock-providers'; import { render, screen } from '@testing-library/react'; import SearchSourceResult from './SearchSourceResult'; import '@testing-library/jest-dom'; jest.mock('../../lib/rooms/roomCoordinator', () => ({ roomCoordinator: { getRouteLink: jest.fn(() => '/channel/general'), }, })); describe('SearchSourceResult', () => { it('renders source metadata, markdown, and a message link', () => { render( , { wrapper: mockAppRoot().build() }, ); expect(screen.getByText('Search User')).toBeInTheDocument(); expect(screen.getByText('@search.user')).toBeInTheDocument(); expect(screen.getByText('General')).toBeInTheDocument(); expect(screen.getByText('61%')).toBeInTheDocument(); expect(screen.getByText('Oranges').tagName).toBe('STRONG'); expect(screen.getByRole('link')).toHaveAttribute('href', '/channel/general?msg=message-id'); }); it('clamps an out-of-range relevance score to 100%', () => { render( , { wrapper: mockAppRoot().build() }, ); expect(screen.getByText('100%')).toBeInTheDocument(); }); it('does not render a link when the source has no resolvable room', () => { render( , { wrapper: mockAppRoot().build() }, ); expect(screen.getByText('orphan message')).toBeInTheDocument(); expect(screen.queryByRole('link')).not.toBeInTheDocument(); }); });