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,
},
})
);
});
});