import {mountWithTheme} from 'sentry-test/enzyme'; import {Client} from 'app/api'; import {ApiTokens} from 'app/views/settings/account/apiTokens'; const organization = TestStubs.Organization(); describe('ApiTokens', function () { const routerContext = TestStubs.routerContext(); beforeEach(function () { Client.clearMockResponses(); }); it('renders empty result', function () { Client.addMockResponse({ url: '/api-tokens/', body: null, }); const wrapper = mountWithTheme( , routerContext ); // Should be loading expect(wrapper).toSnapshot(); }); it('renders with result', function () { Client.addMockResponse({ url: '/api-tokens/', body: [TestStubs.ApiToken()], }); const wrapper = mountWithTheme( , routerContext ); // Should be loading expect(wrapper).toSnapshot(); }); it('can delete token', function () { Client.addMockResponse({ url: '/api-tokens/', body: [TestStubs.ApiToken()], }); const mock = Client.addMockResponse({ url: '/api-tokens/', method: 'DELETE', }); expect(mock).not.toHaveBeenCalled(); const wrapper = mountWithTheme( , routerContext ); wrapper.find('button[aria-label="Remove"]').simulate('click'); // Should be loading expect(mock).toHaveBeenCalledTimes(1); expect(mock).toHaveBeenCalledWith( '/api-tokens/', expect.objectContaining({ method: 'DELETE', }) ); }); });