import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary'; import {useReleaseSelection} from 'sentry/views/insights/common/queries/useReleases'; import {SamplesTables} from 'sentry/views/insights/mobile/common/components/tables/samplesTables'; jest.mock('sentry/views/insights/common/queries/useReleases'); jest.mocked(useReleaseSelection).mockReturnValue({ primaryRelease: 'com.example.vu.android@2.10.5-alpha.1+42', isLoading: false, secondaryRelease: 'com.example.vu.android@2.10.3+42', }); describe('SamplesTables', () => { it('accepts components for event samples and span operation table', async () => { render( (
{`This is a custom Event Samples table for release: ${release}`}
)} SpanOperationTable={_props =>
This is a custom Span Operation table
} transactionName={''} /> ); // The span operation table is rendered first expect( await screen.findByText('This is a custom Span Operation table') ).toBeInTheDocument(); await userEvent.click(screen.getByRole('radio', {name: 'By Event'})); expect( await screen.findByText( 'This is a custom Event Samples table for release: com.example.vu.android@2.10.5-alpha.1+42' ) ).toBeInTheDocument(); expect( screen.getByText( 'This is a custom Event Samples table for release: com.example.vu.android@2.10.3+42' ) ).toBeInTheDocument(); }); });