import {browserHistory} from 'react-router';
import * as PropTypes from 'prop-types';
import {mountWithTheme, shallow} from 'sentry-test/enzyme';
import {OrganizationContext} from 'sentry/views/organizationContext';
import {GroupEvents} from 'sentry/views/organizationGroupDetails/groupEvents';
const OrganizationGroupEvents = GroupEvents;
describe('groupEvents', function () {
let request;
const organization = TestStubs.Organization();
beforeEach(function () {
request = MockApiClient.addMockResponse({
url: '/issues/1/events/',
body: [
TestStubs.Event({
eventID: '12345',
id: '1',
message: 'ApiException',
groupID: '1',
}),
TestStubs.Event({
crashFile: {
sha1: 'sha1',
name: 'name.dmp',
dateCreated: '2019-05-21T18:01:48.762Z',
headers: {'Content-Type': 'application/octet-stream'},
id: '12345',
size: 123456,
type: 'event.minidump',
},
culprit: '',
dateCreated: '2019-05-21T18:00:23Z',
'event.type': 'error',
eventID: '123456',
groupID: '1',
id: '98654',
location: 'main.js',
message: 'TestException',
platform: 'native',
projectID: '123',
tags: [{value: 'production', key: 'production'}],
title: 'TestException',
}),
],
});
browserHistory.push = jest.fn();
});
it('renders', function () {
const component = mountWithTheme(
);
expect(component).toSnapshot();
});
it('handles search', function () {
const component = shallow(
,
{
context: {...TestStubs.router()},
childContextTypes: {
router: PropTypes.object,
},
}
);
const list = [
{searchTerm: '', expectedQuery: ''},
{searchTerm: 'test', expectedQuery: 'test'},
{searchTerm: 'environment:production test', expectedQuery: 'test'},
];
list.forEach(item => {
component.instance().handleSearch(item.searchTerm);
expect(browserHistory.push).toHaveBeenCalledWith(
expect.objectContaining({
query: {query: item.expectedQuery},
})
);
});
});
it('handles environment filtering', function () {
shallow(
,
{
context: {...TestStubs.router()},
childContextTypes: {
router: PropTypes.object,
},
}
);
expect(request).toHaveBeenCalledWith(
'/issues/1/events/',
expect.objectContaining({
query: {limit: 50, query: '', environment: ['prod', 'staging']},
})
);
});
});