import {mountWithTheme} from 'sentry-test/enzyme';
import {mountGlobalModal} from 'sentry-test/modal';
import OrganizationApiKeys from 'sentry/views/settings/organizationApiKeys';
const routes = [
{path: '/'},
{path: '/:orgId/'},
{path: '/organizations/:orgId/'},
{path: 'api-keys/', name: 'API Key'},
];
describe('OrganizationApiKeys', function () {
let getMock, deleteMock;
beforeEach(function () {
MockApiClient.clearMockResponses();
getMock = MockApiClient.addMockResponse({
url: '/organizations/org-slug/api-keys/',
method: 'GET',
body: [TestStubs.ApiKey()],
});
MockApiClient.addMockResponse({
url: '/organizations/org-slug/api-keys/1/',
method: 'GET',
body: TestStubs.ApiKey(),
});
deleteMock = MockApiClient.addMockResponse({
url: '/organizations/org-slug/api-keys/1/',
method: 'DELETE',
});
});
it('fetches api keys', function () {
const wrapper = mountWithTheme(
);
expect(wrapper.find('TextCopyInput')).toHaveLength(1);
expect(getMock).toHaveBeenCalledTimes(1);
});
it('can delete a key', async function () {
const wrapper = mountWithTheme(
);
expect(deleteMock).toHaveBeenCalledTimes(0);
wrapper.find('Confirm[aria-label="Remove API Key"]').simulate('click');
const modal = await mountGlobalModal();
modal.find('button[aria-label="Confirm"]').simulate('click');
wrapper.update();
expect(deleteMock).toHaveBeenCalledTimes(1);
expect(wrapper.find('TextCopyInput')).toHaveLength(0);
});
});