import {render, screen, within} from 'sentry-test/reactTestingLibrary'; import {EventGroupVariantType} from 'sentry/types'; import GroupingVariant from './groupingVariant'; describe('Grouping Variant', () => { const event = { ...TestStubs.Event(), entries: [ { type: 'spans', data: [ { span_id: '1', hash: 'hash1', }, { span_id: '2', hash: 'hash2', }, ], }, ], }; const occurrenceEvent = { ...event, occurrence: { fingerprint: ['test-fingerprint'], evidenceData: { op: 'db', offenderSpanIds: ['2'], causeSpanIds: ['1'], parentSpanIds: [], }, }, }; const performanceIssueVariant = { type: EventGroupVariantType.PERFORMANCE_PROBLEM, description: 'performance issue', hash: 'hash3', hashMismatch: false, key: 'perf-issue', evidence: { desc: 'performance issue', fingerprint: 'a', cause_span_ids: ['1'], offender_span_ids: ['2'], parent_span_ids: [], }, }; it('renders the span hashes for performance issues from event data', () => { render( ); expect( within(screen.getByText('Parent Span Hashes').closest('tr') as HTMLElement) .getByText('[') .closest('td') ).toHaveTextContent('[]'); expect( within( screen.getByText('Source Span Hashes').closest('tr') as HTMLElement ).getByText('hash1') ).toBeInTheDocument(); expect( within( screen.getByText('Offender Span Hashes').closest('tr') as HTMLElement ).getByText('hash2') ).toBeInTheDocument(); }); it('renders grouping details for occurrence-backed performance issues', () => { render( ); expect( within(screen.getByText('Parent Span Hashes').closest('tr') as HTMLElement) .getByText('[') .closest('td') ).toHaveTextContent('[]'); expect( within( screen.getByText('Source Span Hashes').closest('tr') as HTMLElement ).getByText('hash1') ).toBeInTheDocument(); expect( within( screen.getByText('Offender Span Hashes').closest('tr') as HTMLElement ).getByText('hash2') ).toBeInTheDocument(); }); });