import {mountWithTheme} from 'sentry-test/enzyme'; import {initializeOrg} from 'sentry-test/initializeOrg'; import StreamGroup from 'sentry/components/stream/group'; import GroupStore from 'sentry/stores/groupStore'; import trackAdvancedAnalyticsEvent from 'sentry/utils/analytics/trackAdvancedAnalyticsEvent'; jest.mock('sentry/utils/analytics/trackAdvancedAnalyticsEvent'); describe('StreamGroup', function () { let GROUP_1; beforeEach(function () { GROUP_1 = TestStubs.Group({ id: '1337', project: { id: '13', slug: 'foo-project', }, type: 'error', inbox: { date_added: '2020-11-24T13:17:42.248751Z', reason: 0, reason_details: null, }, }); MockApiClient.addMockResponse({ url: '/organizations/org-slug/projects/', query: 'foo', body: [TestStubs.Project({slug: 'foo-project'})], }); jest.spyOn(GroupStore, 'get').mockImplementation(() => GROUP_1); }); afterEach(function () { trackAdvancedAnalyticsEvent.mockClear(); }); it('renders with anchors', async function () { const {routerContext} = initializeOrg(); const component = mountWithTheme( , routerContext ); component.update(); await tick(); expect(component.find('GuideAnchor').exists()).toBe(true); expect(component.find('GuideAnchor')).toHaveLength(3); expect(component).toSnapshot(); }); it('marks as reviewed', function () { const {routerContext, organization} = initializeOrg(); const wrapper = mountWithTheme( , routerContext ); const streamGroup = wrapper.find('StreamGroup'); expect(streamGroup.state('reviewed')).toBe(false); GROUP_1.inbox = false; streamGroup.instance().onGroupChange(new Set(['1337'])); expect(streamGroup.state('reviewed')).toBe(true); }); it('tracks clicks from issues stream', function () { const {routerContext, organization} = initializeOrg(); const wrapper = mountWithTheme( , routerContext ); wrapper.find('GlobalSelectionLink').simulate('click'); expect(trackAdvancedAnalyticsEvent).toHaveBeenCalledTimes(2); }); });