import {mountWithTheme} from 'sentry-test/enzyme'; import {SubscriptionBox} from 'sentry/views/settings/organizationDeveloperSettings/subscriptionBox'; describe('SubscriptionBox', () => { let wrapper; let onChange; let org = TestStubs.Organization(); beforeEach(() => { onChange = jest.fn(); wrapper = mountWithTheme( ); }); it('renders resource checkbox', () => { expect(wrapper).toSnapshot(); }); it('calls onChange prop when checking checkbox', () => { wrapper.find('Checkbox input').simulate('change', {target: {checked: true}}); expect(onChange).toHaveBeenCalledWith('issue', true); }); it('renders tooltip when checkbox is disabled', () => { wrapper.setProps({disabledFromPermissions: true}); expect(wrapper.find('Tooltip').prop('disabled')).toBe(false); }); describe('error.created resource subscription', () => { beforeEach(() => { onChange = jest.fn(); wrapper = mountWithTheme( ); }); it('checkbox disabled without integrations-event-hooks flag', () => { expect(wrapper.find('Checkbox').prop('disabled')).toBe(true); }); it('tooltip enabled without integrations-event-hooks flag', () => { expect(wrapper.find('Tooltip').prop('disabled')).toBe(false); }); it('checkbox visible with integrations-event-hooks flag', () => { org = TestStubs.Organization({features: ['integrations-event-hooks']}); wrapper = mountWithTheme( ); expect(wrapper.find('Checkbox').prop('disabled')).toBe(false); }); it('Tooltip disabled with integrations-event-hooks flag', () => { org = TestStubs.Organization({features: ['integrations-event-hooks']}); wrapper = mountWithTheme( ); expect(wrapper.find('Tooltip').prop('disabled')).toBe(true); }); }); it('disables checkbox when webhookDisabled=true', () => { wrapper = mountWithTheme( ); const tooltip = wrapper.find('Tooltip'); expect(tooltip.prop('disabled')).toBe(false); expect(tooltip.prop('title')).toBe( 'Cannot enable webhook subscription without specifying a webhook url' ); expect(wrapper.find('Checkbox').prop('disabled')).toBe(true); }); });