mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
79 lines
2.4 KiB
TypeScript
79 lines
2.4 KiB
TypeScript
import {OpsgenieIntegrationFixture} from 'sentry-fixture/opsgenieIntegration';
|
|
import {OpsgenieIntegrationProviderFixture} from 'sentry-fixture/opsgenieIntegrationProvider';
|
|
import {OrganizationFixture} from 'sentry-fixture/organization';
|
|
import {RouteComponentPropsFixture} from 'sentry-fixture/routeComponentPropsFixture';
|
|
|
|
import {
|
|
render,
|
|
renderGlobalModal,
|
|
screen,
|
|
userEvent,
|
|
} from 'sentry-test/reactTestingLibrary';
|
|
|
|
import ConfigureIntegration from 'sentry/views/settings/organizationIntegrations/configureIntegration';
|
|
|
|
describe('OpsgenieMigrationButton', function () {
|
|
const org = OrganizationFixture({
|
|
access: ['org:integrations', 'org:write'],
|
|
});
|
|
const integrationId = '1';
|
|
it('Migrate Plugin button hits migration endpoint', async function () {
|
|
org.features.push('integrations-opsgenie-migration');
|
|
MockApiClient.addMockResponse({
|
|
url: `/organizations/${org.slug}/config/integrations/`,
|
|
body: {
|
|
providers: [OpsgenieIntegrationProviderFixture()],
|
|
},
|
|
});
|
|
|
|
MockApiClient.addMockResponse({
|
|
url: `/organizations/${org.slug}/integrations/${integrationId}/`,
|
|
body: OpsgenieIntegrationFixture(),
|
|
});
|
|
|
|
MockApiClient.addMockResponse({
|
|
url: `/organizations/${org.slug}/plugins/configs/`,
|
|
body: [
|
|
{
|
|
id: 'opsgenie',
|
|
name: 'Opsgenie',
|
|
slug: 'opsgenie',
|
|
projectList: [
|
|
{
|
|
projectId: 2,
|
|
projectSlug: 'python',
|
|
projectName: 'python',
|
|
enabled: true,
|
|
configured: true,
|
|
projectPlatform: 'python',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|
|
|
|
const onConfirmCall = MockApiClient.addMockResponse({
|
|
url: `/organizations/${org.slug}/integrations/${integrationId}/migrate-opsgenie/`,
|
|
method: 'PUT',
|
|
});
|
|
|
|
render(
|
|
<ConfigureIntegration
|
|
{...RouteComponentPropsFixture()}
|
|
params={{integrationId, providerKey: 'opsgenie'}}
|
|
/>,
|
|
{organization: org}
|
|
);
|
|
renderGlobalModal();
|
|
expect(await screen.findByRole('button', {name: 'Migrate Plugin'})).toBeEnabled();
|
|
|
|
await userEvent.click(screen.getByRole('button', {name: 'Migrate Plugin'}));
|
|
|
|
expect(screen.queryByRole('button', {name: 'Confirm'})).toBeInTheDocument();
|
|
|
|
await userEvent.click(screen.getByRole('button', {name: 'Confirm'}));
|
|
|
|
expect(onConfirmCall).toHaveBeenCalled();
|
|
});
|
|
});
|