import {ProjectFixture} from 'sentry-fixture/project'; import {render, screen} from 'sentry-test/reactTestingLibrary'; import usePageFilters from 'sentry/utils/usePageFilters'; import useProjects from 'sentry/utils/useProjects'; import {useOnboardingProject} from 'sentry/views/insights/common/queries/useOnboardingProject'; import {ModuleName} from 'sentry/views/insights/types'; import {ModulesOnboarding} from './modulesOnboarding'; jest.mock('sentry/utils/useProjects'); jest.mock('sentry/utils/usePageFilters'); jest.mock('sentry/views/insights/common/queries/useOnboardingProject'); describe('ModulesOnboarding', () => { afterEach(() => { jest.resetAllMocks(); }); it('renders children correctly', async () => { const project = ProjectFixture({hasInsightsCaches: true}); project.firstTransactionEvent = true; project.hasInsightsCaches = true; jest.mocked(useProjects).mockReturnValue({ projects: [project], onSearch: jest.fn(), reloadProjects: jest.fn(), placeholders: [], fetching: false, hasMore: null, fetchError: null, initiallyLoaded: false, }); jest.mocked(useOnboardingProject).mockReturnValue(undefined); jest.mocked(usePageFilters).mockReturnValue({ isReady: true, desyncedFilters: new Set(), pinnedFilters: new Set(), shouldPersist: true, selection: { datetime: { period: '10d', start: null, end: null, utc: false, }, environments: [], projects: [2], }, }); render(
Module Content
); await screen.getByText('Module Content'); }); it('renders onboarding content correctly', async () => { const project = ProjectFixture(); jest.mocked(useProjects).mockReturnValue({ projects: [project], onSearch: jest.fn(), reloadProjects: jest.fn(), placeholders: [], fetching: false, hasMore: null, fetchError: null, initiallyLoaded: false, }); jest.mocked(usePageFilters).mockReturnValue({ isReady: true, desyncedFilters: new Set(), pinnedFilters: new Set(), shouldPersist: true, selection: { datetime: { period: '10d', start: null, end: null, utc: false, }, environments: [], projects: [2], }, }); render(
Module Content
); await screen.findByText('Bringing you one less hard problem in computer science'); }); it('renders performance onboarding if onboardingProject', async () => { const project = ProjectFixture(); jest.mocked(useOnboardingProject).mockReturnValue(project); jest.mocked(useProjects).mockReturnValue({ projects: [project], onSearch: jest.fn(), reloadProjects: jest.fn(), placeholders: [], fetching: false, hasMore: null, fetchError: null, initiallyLoaded: false, }); jest.mocked(usePageFilters).mockReturnValue({ isReady: true, desyncedFilters: new Set(), pinnedFilters: new Set(), shouldPersist: true, selection: { datetime: { period: '10d', start: null, end: null, utc: false, }, environments: [], projects: [2], }, }); render(
Module Content
); await screen.findByText('Pinpoint problems'); }); });