import {FC} from 'react'; import {Organization} from 'fixtures/js-stubs/organization'; import {routerContext} from 'fixtures/js-stubs/routerContext'; import {initializeOrg} from 'sentry-test/initializeOrg'; import {render, screen} from 'sentry-test/reactTestingLibrary'; import EventOrGroupTitle from 'sentry/components/eventOrGroupTitle'; import {BaseGroup, EventOrGroupType, IssueCategory} from 'sentry/types'; import {OrganizationContext} from 'sentry/views/organizationContext'; describe('EventOrGroupTitle', function () { const data = { metadata: { type: 'metadata type', directive: 'metadata directive', uri: 'metadata uri', }, culprit: 'culprit', }; const {organization} = initializeOrg(); const TestComponent: FC = ({children}) => ( {children} ); it('renders with subtitle when `type = error`', function () { const wrapper = render( ); expect(wrapper.container).toSnapshot(); }); it('renders with subtitle when `type = csp`', function () { const wrapper = render( ); expect(wrapper.container).toSnapshot(); }); it('renders with no subtitle when `type = default`', function () { const wrapper = render( ); expect(wrapper.container).toSnapshot(); }); it('renders with title override', function () { const routerContext = routerContext([ {organization: Organization({features: ['custom-event-title']})}, ]); render( , {context: routerContext} ); expect(screen.getByText('metadata title')).toBeInTheDocument(); }); it('does not render stack trace when issueCategory is performance', () => { render( ); expect(screen.queryByTestId('stacktrace-preview')).not.toBeInTheDocument(); }); describe('performance issue list', () => { const perfData = { title: 'Hello', type: EventOrGroupType.TRANSACTION, issueCategory: IssueCategory.PERFORMANCE, metadata: { title: 'N+1 Query', }, culprit: 'transaction name', } as BaseGroup; it('should correctly render title', () => { const routerContext = routerContext([ {organization: Organization({features: ['custom-event-title']})}, ]); render( , {context: routerContext} ); expect(screen.getByText('N+1 Query')).toBeInTheDocument(); expect(screen.getByText('transaction name')).toBeInTheDocument(); }); }); });