import React from 'react';
import {shallow, mount} from 'enzyme';
import {Client} from 'app/api';
import AccountIdentities from 'app/views/settings/account/accountIdentities';
const ENDPOINT = '/users/me/social-identities/';
describe('AccountIdentities', function() {
beforeEach(function() {
Client.clearMockResponses();
});
it('renders empty', function() {
Client.addMockResponse({
url: ENDPOINT,
method: 'GET',
body: [],
});
let wrapper = shallow(, TestStubs.routerContext());
expect(wrapper).toMatchSnapshot();
});
it('renders list', function() {
Client.addMockResponse({
url: ENDPOINT,
method: 'GET',
body: [
{
id: '1',
provider: 'github',
providerLabel: 'GitHub',
},
],
});
let wrapper = shallow(, TestStubs.routerContext());
expect(wrapper).toMatchSnapshot();
});
it('disconnects identity', function() {
Client.addMockResponse({
url: ENDPOINT,
method: 'GET',
body: [
{
id: '1',
provider: 'github',
providerLabel: 'GitHub',
},
],
});
let wrapper = mount(, TestStubs.routerContext());
let disconnectRequest = {
url: `${ENDPOINT}1/`,
method: 'DELETE',
};
let mock = Client.addMockResponse(disconnectRequest);
expect(mock).not.toHaveBeenCalled();
wrapper
.find('Button')
.first()
.simulate('click');
expect(mock).toHaveBeenCalledTimes(1);
expect(mock).toHaveBeenCalledWith(
`${ENDPOINT}1/`,
expect.objectContaining({
method: 'DELETE',
})
);
});
});