import {ReactElement, useEffect, useMemo} from 'react'; import {initializeOrg} from 'sentry-test/initializeOrg'; import {render, screen} from 'sentry-test/reactTestingLibrary'; import {ProfilesTable} from 'sentry/components/profiling/profilesTable'; import ProjectsStore from 'sentry/stores/projectsStore'; import {OrganizationContext} from 'sentry/views/organizationContext'; import {RouteContext} from 'sentry/views/routeContext'; const organization = TestStubs.Organization(); const project = TestStubs.Project(); function TestContext({children}: {children: ReactElement}) { const {router} = useMemo(() => initializeOrg({organization, project} as any), []); useEffect(() => { ProjectsStore.loadInitialData([project]); return () => ProjectsStore.reset(); }, []); return ( {children} ); } describe('ProfilesTable', function () { it('renders loading', function () { render( ); expect(screen.getByTestId('loading-indicator')).toBeInTheDocument(); }); it('renders empty data', function () { render( ); expect(screen.getByText('No results found for your query')).toBeInTheDocument(); }); it('renders one trace', function () { const trace = { android_api_level: 0, device_classification: 'low', device_locale: 'en_US', device_manufacturer: 'Apple', device_model: 'iPhone7,2', device_os_build_number: '14F89', device_os_name: 'iOS', device_os_version: '10.3.2', failed: false, id: '75a32ee2e6ed44458f4647b024b615bb', project_id: '2', timestamp: 1653426810, trace_duration_ms: 931.404667, transaction_id: '6051e1bfb94349a88ead9ffec6910eb9', transaction_name: 'iOS_Swift.ViewController', version_code: '1', version_name: '7.16.0', }; render( ); expect(screen.getByText('Status')).toBeInTheDocument(); expect(screen.getByText('Profile ID')).toBeInTheDocument(); expect(screen.getByText('75a32ee2')).toBeInTheDocument(); expect(screen.getByText('Project')).toBeInTheDocument(); expect(screen.getByText('project-slug')).toBeInTheDocument(); expect(screen.getByText('Transaction Name')).toBeInTheDocument(); expect(screen.getByText('iOS_Swift.ViewController')).toBeInTheDocument(); expect(screen.getByText('Version')).toBeInTheDocument(); expect(screen.getByText('7.16.0 (build 1)')).toBeInTheDocument(); expect(screen.getByText('Timestamp')).toBeInTheDocument(); expect(screen.getByText('May 24, 2022 9:13:30 PM UTC')).toBeInTheDocument(); expect(screen.getByText('Duration')).toBeInTheDocument(); expect(screen.getByText('931.40ms')).toBeInTheDocument(); expect(screen.getByText('Device Model')).toBeInTheDocument(); expect(screen.getByText('iPhone7,2')).toBeInTheDocument(); expect(screen.getByText('Device Classification')).toBeInTheDocument(); expect(screen.getByText('low')).toBeInTheDocument(); }); });