import {initializeOrg} from 'sentry-test/initializeOrg';
import {render, screen} from 'sentry-test/reactTestingLibrary';
import {textWithMarkupMatcher} from 'sentry-test/utils';
import EventOrGroupHeader from 'sentry/components/eventOrGroupHeader';
import {EventOrGroupType} from 'sentry/types';
const group = TestStubs.Group({
level: 'error',
metadata: {
type: 'metadata type',
directive: 'metadata directive',
uri: 'metadata uri',
value: 'metadata value',
message: 'metadata message',
},
culprit: 'culprit',
});
const event = TestStubs.Event({
id: 'id',
eventID: 'eventID',
groupID: 'groupID',
culprit: undefined,
metadata: {
type: 'metadata type',
directive: 'metadata directive',
uri: 'metadata uri',
value: 'metadata value',
message: 'metadata message',
},
});
describe('EventOrGroupHeader', function () {
const {organization, router, routerContext} = initializeOrg();
describe('Group', function () {
it('renders with `type = error`', function () {
render();
});
it('renders with `type = csp`', function () {
render(
);
});
it('renders with `type = default`', function () {
render(
);
});
it('renders metadata values in message for error events', function () {
render(
);
expect(screen.getByText('metadata value')).toBeInTheDocument();
});
it('renders location', function () {
render(
);
expect(
screen.getByText(textWithMarkupMatcher('in path/to/file.swift'))
).toBeInTheDocument();
});
});
describe('Event', function () {
it('renders with `type = error`', function () {
render(
);
});
it('renders with `type = csp`', function () {
render(
);
});
it('renders with `type = default`', function () {
render(
);
});
it('hides level tag', function () {
render(
);
});
it('keeps sort in link when query has sort', function () {
render(
,
{
context: routerContext,
router: {
...router,
location: {
...router.location,
query: {
...router.location.query,
sort: 'freq',
},
},
},
}
);
expect(screen.getByRole('link')).toHaveAttribute(
'href',
'/organizations/org-slug/issues/groupID/events/eventID/?_allp=1&referrer=event-or-group-header&sort=freq'
);
});
it('lack of project adds all parameter', function () {
render(
,
{
context: routerContext,
router: {
...router,
location: {
...router.location,
query: {},
},
},
}
);
expect(screen.getByRole('link')).toHaveAttribute(
'href',
'/organizations/org-slug/issues/groupID/events/eventID/?_allp=1&referrer=event-or-group-header'
);
});
});
it('renders group tombstone without link to group', function () {
render(
);
expect(screen.queryByRole('link')).not.toBeInTheDocument();
});
});