import {OrganizationFixture} from 'sentry-fixture/organization'; import {RouterFixture} from 'sentry-fixture/routerFixture'; import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary'; import {useNavigate} from 'sentry/utils/useNavigate'; import DatasetSelector from 'sentry/views/dashboards/widgetBuilder/components/datasetSelector'; import {WidgetBuilderProvider} from 'sentry/views/dashboards/widgetBuilder/contexts/widgetBuilderContext'; jest.mock('sentry/utils/useNavigate', () => ({ useNavigate: jest.fn(), })); const mockUseNavigate = jest.mocked(useNavigate); describe('DatasetSelector', function () { let router!: ReturnType; let organization!: ReturnType; beforeEach(function () { router = RouterFixture(); organization = OrganizationFixture({}); }); it('changes the dataset', async function () { const mockNavigate = jest.fn(); mockUseNavigate.mockReturnValue(mockNavigate); render( , { router, organization, } ); await userEvent.click(await screen.findByLabelText('Issues')); expect(mockNavigate).toHaveBeenCalledWith( expect.objectContaining({ ...router.location, query: expect.objectContaining({dataset: 'issue'}), }) ); }); });