123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- 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} = initializeOrg({
- router: {orgId: 'orgId'},
- } as Parameters<typeof initializeOrg>[0]);
- describe('Group', function () {
- it('renders with `type = error`', function () {
- const {container} = render(
- <EventOrGroupHeader organization={organization} data={group} {...router} />
- );
- expect(container).toSnapshot();
- });
- it('renders with `type = csp`', function () {
- const {container} = render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...group,
- type: EventOrGroupType.CSP,
- }}
- {...router}
- />
- );
- expect(container).toSnapshot();
- });
- it('renders with `type = default`', function () {
- const {container} = render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...group,
- type: EventOrGroupType.DEFAULT,
- metadata: {
- ...group.metadata,
- title: 'metadata title',
- },
- }}
- {...router}
- />
- );
- expect(container).toSnapshot();
- });
- it('renders metadata values in message for error events', function () {
- render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...group,
- type: EventOrGroupType.ERROR,
- }}
- {...router}
- />
- );
- expect(screen.getByText('metadata value')).toBeInTheDocument();
- });
- it('renders location', function () {
- render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...group,
- metadata: {
- filename: 'path/to/file.swift',
- },
- platform: 'swift',
- type: EventOrGroupType.ERROR,
- }}
- {...router}
- />
- );
- expect(
- screen.getByText(textWithMarkupMatcher('in path/to/file.swift'))
- ).toBeInTheDocument();
- });
- });
- describe('Event', function () {
- it('renders with `type = error`', function () {
- const {container} = render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...event,
- type: EventOrGroupType.ERROR,
- }}
- {...router}
- />
- );
- expect(container).toSnapshot();
- });
- it('renders with `type = csp`', function () {
- const {container} = render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...event,
- type: EventOrGroupType.CSP,
- }}
- {...router}
- />
- );
- expect(container).toSnapshot();
- });
- it('renders with `type = default`', function () {
- const {container} = render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...event,
- type: EventOrGroupType.DEFAULT,
- metadata: {
- ...event.metadata,
- title: 'metadata title',
- },
- }}
- {...router}
- />
- );
- expect(container).toSnapshot();
- });
- it('hides level tag', function () {
- const {container} = render(
- <EventOrGroupHeader
- projectId="projectId"
- hideLevel
- organization={organization}
- data={{
- ...event,
- type: EventOrGroupType.DEFAULT,
- metadata: {
- ...event.metadata,
- title: 'metadata title',
- },
- }}
- {...router}
- />
- );
- expect(container).toSnapshot();
- });
- it('keeps sort in link when query has sort', function () {
- render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...event,
- type: EventOrGroupType.DEFAULT,
- }}
- {...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&sort=freq'
- );
- });
- it('lack of project adds allp parameter', function () {
- render(
- <EventOrGroupHeader
- organization={organization}
- data={{
- ...event,
- type: EventOrGroupType.DEFAULT,
- }}
- {...router}
- location={{
- ...router.location,
- query: {},
- }}
- />
- );
- expect(screen.getByRole('link')).toHaveAttribute(
- 'href',
- '/organizations/org-slug/issues/groupID/events/eventID/?_allp=1'
- );
- });
- });
- });
|