1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
- import {Client} from 'sentry/api';
- import GlobalModal from 'sentry/components/globalModal';
- import AccountIdentities from 'sentry/views/settings/account/accountIdentities';
- const ENDPOINT = '/users/me/user-identities/';
- describe('AccountIdentities', function () {
- beforeEach(function () {
- Client.clearMockResponses();
- });
- it('renders empty', function () {
- Client.addMockResponse({
- url: ENDPOINT,
- method: 'GET',
- body: [],
- });
- const {container} = render(<AccountIdentities />);
- expect(container).toSnapshot();
- });
- it('renders list', function () {
- Client.addMockResponse({
- url: ENDPOINT,
- method: 'GET',
- body: [
- {
- category: 'social-identity',
- id: '1',
- provider: {
- key: 'github',
- name: 'GitHub',
- },
- status: 'can_disconnect',
- organization: null,
- },
- ],
- });
- const {container} = render(<AccountIdentities />);
- expect(container).toSnapshot();
- });
- it('disconnects identity', function () {
- Client.addMockResponse({
- url: ENDPOINT,
- method: 'GET',
- body: [
- {
- category: 'social-identity',
- id: '1',
- provider: {
- key: 'github',
- name: 'GitHub',
- },
- status: 'can_disconnect',
- organization: null,
- },
- ],
- });
- render(<AccountIdentities />);
- const disconnectRequest = {
- url: `${ENDPOINT}social-identity/1/`,
- method: 'DELETE',
- };
- const mock = Client.addMockResponse(disconnectRequest);
- expect(mock).not.toHaveBeenCalled();
- userEvent.click(screen.getByRole('button', {name: 'Disconnect'}));
- render(<GlobalModal />);
- userEvent.click(screen.getByTestId('confirm-button'));
- expect(mock).toHaveBeenCalledTimes(1);
- expect(mock).toHaveBeenCalledWith(
- `${ENDPOINT}social-identity/1/`,
- expect.objectContaining({
- method: 'DELETE',
- })
- );
- });
- });
|