import {mountWithTheme} from 'sentry-test/enzyme';
import * as modal from 'sentry/actionCreators/modal';
import {Client} from 'sentry/api';
import PluginDetailedView from 'sentry/views/organizationIntegrations/pluginDetailedView';
const mockResponse = mocks => {
mocks.forEach(([url, body]) =>
Client.addMockResponse({
url,
body,
})
);
};
describe('PluginDetailedView', function () {
const org = TestStubs.Organization();
let wrapper;
beforeEach(() => {
Client.clearMockResponses();
mockResponse([
[
`/organizations/${org.slug}/plugins/configs/?plugins=pagerduty`,
[
{
status: 'unknown',
description: 'Send alerts to PagerDuty.',
isTestable: true,
isHidden: true,
hasConfiguration: true,
features: [],
shortName: 'PagerDuty',
id: 'pagerduty',
assets: [],
featureDescriptions: [],
name: 'PagerDuty',
author: {url: 'https://github.com/getsentry/sentry', name: 'Sentry Team'},
contexts: [],
doc: '',
resourceLinks: [
{url: 'https://github.com/getsentry/sentry/issues', title: 'Report Issue'},
{
url: 'https://github.com/getsentry/sentry/tree/master/src/sentry_plugins',
title: 'View Source',
},
],
slug: 'pagerduty',
projectList: [
{
projectId: 2,
configured: true,
enabled: true,
projectSlug: 'javascript',
projectPlatform: 'javascript',
projectName: 'JavaScript',
},
],
version: '10.1.0.dev0',
canDisable: true,
type: 'notification',
metadata: {},
},
],
],
]);
wrapper = mountWithTheme(
);
});
it('shows the Integration name and install status', function () {
expect(wrapper.find('Name').props().children).toEqual('PagerDuty (Legacy)');
expect(wrapper.find('IntegrationStatus').props().status).toEqual('Installed');
});
it('shows the Add to Project button', function () {
expect(wrapper.find('AddButton').props().disabled).toEqual(false);
expect(wrapper.find('AddButton').props().children).toEqual('Add to Project');
});
it('onClick', function () {
modal.openModal = jest.fn();
wrapper.find('AddButton').simulate('click');
expect(modal.openModal).toHaveBeenCalled();
});
it('view configurations', function () {
wrapper = mountWithTheme(
);
expect(wrapper.find('InstalledPlugin')).toHaveLength(1);
});
});