123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- import {browserHistory} from 'react-router';
- import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
- import {IssueCategory} from 'sentry/types';
- import GroupHeader from 'sentry/views/issueDetails/header';
- import {ReprocessingStatus} from 'sentry/views/issueDetails/utils';
- describe('groupDetails', () => {
- const baseUrl = 'BASE_URL/';
- const organization = TestStubs.Organization();
- const project = TestStubs.Project({teams: [TestStubs.Team()]});
- describe('issue category: error', () => {
- const defaultProps = {
- organization,
- baseUrl,
- group: TestStubs.Group({issueCategory: IssueCategory.ERROR}),
- groupReprocessingStatus: ReprocessingStatus.NO_STATUS,
- project,
- };
- it('displays the correct tabs with all features enabled', async () => {
- const orgWithFeatures = TestStubs.Organization({
- features: ['grouping-tree-ui', 'similarity-view', 'event-attachments'],
- });
- const projectWithSimilarityView = TestStubs.Project({
- features: ['similarity-view'],
- });
- render(
- <GroupHeader
- {...defaultProps}
- organization={orgWithFeatures}
- project={projectWithSimilarityView}
- />,
- {organization: orgWithFeatures}
- );
- await userEvent.click(screen.getByRole('tab', {name: /details/i}));
- expect(browserHistory.push).toHaveBeenLastCalledWith('BASE_URL/');
- await userEvent.click(screen.getByRole('tab', {name: /activity/i}));
- expect(browserHistory.push).toHaveBeenCalledWith('BASE_URL/activity/');
- await userEvent.click(screen.getByRole('tab', {name: /user feedback/i}));
- expect(browserHistory.push).toHaveBeenCalledWith('BASE_URL/feedback/');
- await userEvent.click(screen.getByRole('tab', {name: /attachments/i}));
- expect(browserHistory.push).toHaveBeenCalledWith('BASE_URL/attachments/');
- await userEvent.click(screen.getByRole('tab', {name: /tags/i}));
- expect(browserHistory.push).toHaveBeenCalledWith('BASE_URL/tags/');
- await userEvent.click(screen.getByRole('tab', {name: /all events/i}));
- expect(browserHistory.push).toHaveBeenCalledWith({
- pathname: 'BASE_URL/events/',
- query: {},
- });
- await userEvent.click(screen.getByRole('tab', {name: /merged issues/i}));
- expect(browserHistory.push).toHaveBeenCalledWith('BASE_URL/merged/');
- await userEvent.click(screen.getByRole('tab', {name: /grouping/i}));
- expect(browserHistory.push).toHaveBeenCalledWith('BASE_URL/grouping/');
- await userEvent.click(screen.getByRole('tab', {name: /similar issues/i}));
- expect(browserHistory.push).toHaveBeenCalledWith('BASE_URL/similar/');
- });
- });
- describe('issue category: performance', () => {
- const defaultProps = {
- organization,
- baseUrl,
- group: TestStubs.Group({issueCategory: IssueCategory.PERFORMANCE}),
- groupReprocessingStatus: ReprocessingStatus.NO_STATUS,
- project,
- };
- it('displays the correct tabs with all features enabled', async () => {
- const orgWithFeatures = TestStubs.Organization({
- features: ['grouping-tree-ui', 'similarity-view', 'event-attachments'],
- });
- const projectWithSimilarityView = TestStubs.Project({
- features: ['similarity-view'],
- });
- render(
- <GroupHeader
- {...defaultProps}
- organization={orgWithFeatures}
- project={projectWithSimilarityView}
- />,
- {organization: orgWithFeatures}
- );
- await userEvent.click(screen.getByRole('tab', {name: /details/i}));
- expect(browserHistory.push).toHaveBeenLastCalledWith('BASE_URL/');
- await userEvent.click(screen.getByRole('tab', {name: /tags/i}));
- expect(browserHistory.push).toHaveBeenCalledWith('BASE_URL/tags/');
- await userEvent.click(screen.getByRole('tab', {name: /all events/i}));
- expect(browserHistory.push).toHaveBeenCalledWith({
- pathname: 'BASE_URL/events/',
- query: {},
- });
- expect(screen.queryByRole('tab', {name: /user feedback/i})).not.toBeInTheDocument();
- expect(screen.queryByRole('tab', {name: /attachments/i})).not.toBeInTheDocument();
- expect(screen.queryByRole('tab', {name: /merged issues/i})).not.toBeInTheDocument();
- expect(screen.queryByRole('tab', {name: /grouping/i})).not.toBeInTheDocument();
- expect(
- screen.queryByRole('tab', {name: /similar issues/i})
- ).not.toBeInTheDocument();
- });
- });
- });
|