import React from 'react'; import {shallow, mount} from 'enzyme'; import {Client} from 'app/api'; import ApiTokens from 'app/views/settings/account/apiTokens'; describe('ApiTokens', function() { let routerContext = TestStubs.routerContext(); beforeEach(function() { Client.clearMockResponses(); }); it('renders empty result', function() { Client.addMockResponse({ url: '/api-tokens/', }); let wrapper = shallow(, routerContext); // Should be loading expect(wrapper).toMatchSnapshot(); }); it('renders with result', function() { Client.addMockResponse({ url: '/api-tokens/', body: [TestStubs.ApiToken()], }); let wrapper = shallow(, routerContext); // Should be loading expect(wrapper).toMatchSnapshot(); }); it('can delete token', function() { Client.addMockResponse({ url: '/api-tokens/', body: [TestStubs.ApiToken()], }); let mock = Client.addMockResponse({ url: '/api-tokens/', method: 'DELETE', }); expect(mock).not.toHaveBeenCalled(); let wrapper = mount(, routerContext); wrapper.find('.ref-delete-api-token').simulate('click'); // Should be loading expect(mock).toHaveBeenCalledTimes(1); expect(mock).toHaveBeenCalledWith( '/api-tokens/', expect.objectContaining({ method: 'DELETE', }) ); }); });