mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
112 lines
3.0 KiB
TypeScript
112 lines
3.0 KiB
TypeScript
import {OrganizationFixture} from 'sentry-fixture/organization';
|
|
import {PluginFixture} from 'sentry-fixture/plugin';
|
|
import {PluginsFixture} from 'sentry-fixture/plugins';
|
|
import {ProjectFixture} from 'sentry-fixture/project';
|
|
import {RouteComponentPropsFixture} from 'sentry-fixture/routeComponentPropsFixture';
|
|
|
|
import {render, screen, userEvent, waitFor} from 'sentry-test/reactTestingLibrary';
|
|
|
|
import * as indicators from 'sentry/actionCreators/indicator';
|
|
import ProjectPluginDetailsContainer, {
|
|
ProjectPluginDetails,
|
|
} from 'sentry/views/settings/projectPlugins/details';
|
|
|
|
describe('ProjectPluginDetails', function () {
|
|
const organization = OrganizationFixture();
|
|
const project = ProjectFixture();
|
|
const plugins = PluginsFixture();
|
|
const plugin = PluginFixture();
|
|
const routerProps = RouteComponentPropsFixture();
|
|
|
|
beforeAll(function () {
|
|
jest.spyOn(console, 'info').mockImplementation(() => {});
|
|
});
|
|
|
|
beforeEach(function () {
|
|
MockApiClient.addMockResponse({
|
|
url: `/projects/${organization.slug}/${project.slug}/plugins/`,
|
|
method: 'GET',
|
|
body: plugins,
|
|
});
|
|
|
|
MockApiClient.addMockResponse({
|
|
url: `/projects/${organization.slug}/${project.slug}/plugins/${plugin.id}/`,
|
|
method: 'DELETE',
|
|
});
|
|
|
|
MockApiClient.addMockResponse({
|
|
url: `/projects/${organization.slug}/${project.slug}/plugins/${plugin.id}/`,
|
|
method: 'GET',
|
|
body: plugin,
|
|
});
|
|
|
|
MockApiClient.addMockResponse({
|
|
url: `/projects/${organization.slug}/${project.slug}/plugins/${plugin.id}/`,
|
|
method: 'POST',
|
|
body: {
|
|
...plugin,
|
|
config: [{value: 'default'}],
|
|
},
|
|
});
|
|
});
|
|
|
|
it('renders', function () {
|
|
render(
|
|
<ProjectPluginDetailsContainer
|
|
{...routerProps}
|
|
organization={organization}
|
|
project={project}
|
|
params={{
|
|
projectId: project.slug,
|
|
pluginId: 'amazon-sqs',
|
|
}}
|
|
/>
|
|
);
|
|
});
|
|
|
|
it('resets plugin', async function () {
|
|
jest.spyOn(indicators, 'addSuccessMessage');
|
|
|
|
render(
|
|
<ProjectPluginDetails
|
|
{...routerProps}
|
|
organization={organization}
|
|
project={project}
|
|
plugins={{plugins}}
|
|
params={{
|
|
projectId: project.slug,
|
|
pluginId: 'amazon-sqs',
|
|
}}
|
|
/>
|
|
);
|
|
|
|
await userEvent.click(screen.getByRole('button', {name: 'Reset Configuration'}));
|
|
|
|
await waitFor(() =>
|
|
expect(indicators.addSuccessMessage).toHaveBeenCalledWith('Plugin was reset')
|
|
);
|
|
});
|
|
|
|
it('enables/disables plugin', async function () {
|
|
jest.spyOn(indicators, 'addSuccessMessage');
|
|
|
|
render(
|
|
<ProjectPluginDetailsContainer
|
|
{...routerProps}
|
|
organization={organization}
|
|
project={project}
|
|
params={{
|
|
projectId: project.slug,
|
|
pluginId: 'amazon-sqs',
|
|
}}
|
|
/>
|
|
);
|
|
|
|
await userEvent.click(screen.getByRole('button', {name: 'Enable Plugin'}));
|
|
|
|
await waitFor(() =>
|
|
expect(indicators.addSuccessMessage).toHaveBeenCalledWith('Plugin was enabled')
|
|
);
|
|
});
|
|
});
|