index.spec.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import {DeprecatedApiKeyFixture} from 'sentry-fixture/deprecatedApiKey';
  2. import {
  3. render,
  4. renderGlobalModal,
  5. screen,
  6. userEvent,
  7. } from 'sentry-test/reactTestingLibrary';
  8. import OrganizationApiKeys from 'sentry/views/settings/organizationApiKeys';
  9. describe('OrganizationApiKeys', function () {
  10. let getMock: jest.Mock;
  11. let deleteMock: jest.Mock;
  12. beforeEach(function () {
  13. MockApiClient.clearMockResponses();
  14. getMock = MockApiClient.addMockResponse({
  15. url: '/organizations/org-slug/api-keys/',
  16. method: 'GET',
  17. body: [DeprecatedApiKeyFixture()],
  18. });
  19. MockApiClient.addMockResponse({
  20. url: '/organizations/org-slug/api-keys/1/',
  21. method: 'GET',
  22. body: DeprecatedApiKeyFixture(),
  23. });
  24. deleteMock = MockApiClient.addMockResponse({
  25. url: '/organizations/org-slug/api-keys/1/',
  26. method: 'DELETE',
  27. });
  28. });
  29. it('fetches api keys', async function () {
  30. render(<OrganizationApiKeys />);
  31. expect(await screen.findByRole('textbox')).toBeInTheDocument();
  32. expect(getMock).toHaveBeenCalledTimes(1);
  33. });
  34. it('can delete a key', async function () {
  35. render(<OrganizationApiKeys />);
  36. renderGlobalModal();
  37. await userEvent.click(await screen.findByRole('link', {name: 'Remove API Key?'}));
  38. expect(deleteMock).toHaveBeenCalledTimes(0);
  39. await userEvent.click(screen.getByTestId('confirm-button'));
  40. expect(deleteMock).toHaveBeenCalledTimes(1);
  41. expect(screen.queryByRole('textbox')).not.toBeInTheDocument();
  42. });
  43. });