import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary'; import {Client} from 'sentry/api'; import AccountSubscriptions from 'sentry/views/settings/account/accountSubscriptions'; const ENDPOINT = '/users/me/subscriptions/'; describe('AccountSubscriptions', function () { beforeEach(function () { Client.clearMockResponses(); }); it('renders empty', function () { Client.addMockResponse({ url: ENDPOINT, body: [], }); const wrapper = render(, { context: TestStubs.routerContext(), }); expect(wrapper.container).toSnapshot(); }); it('renders list and can toggle', function () { Client.addMockResponse({ url: ENDPOINT, body: TestStubs.Subscriptions(), }); const mock = Client.addMockResponse({ url: ENDPOINT, method: 'PUT', }); const wrapper = render(, { context: TestStubs.routerContext(), }); expect(wrapper.container).toSnapshot(); expect(mock).not.toHaveBeenCalled(); userEvent.click(screen.getAllByTestId('switch')[0]); expect(mock).toHaveBeenCalledWith( ENDPOINT, expect.objectContaining({ method: 'PUT', data: { listId: 2, subscribed: false, }, }) ); }); });