import { render, renderGlobalModal, screen, userEvent, } from 'sentry-test/reactTestingLibrary'; import ConfirmDelete from 'sentry/components/confirmDelete'; import ModalStore from 'sentry/stores/modalStore'; describe('ConfirmDelete', function () { afterEach(() => { ModalStore.reset(); }); it('renders', function () { const mock = jest.fn(); render( ); const globalModal = renderGlobalModal(); userEvent.click(screen.getByRole('button')); // jest had an issue rendering root component snapshot so using ModalDialog instead expect(globalModal.container).toSnapshot(); }); it('confirm button is disabled and bypass prop is false when modal opens', function () { const mock = jest.fn(); render( ); renderGlobalModal(); userEvent.click(screen.getByRole('button')); expect(screen.getByRole('button', {name: 'Confirm'})).toBeDisabled(); }); it('confirm button stays disabled with non-matching input', function () { const mock = jest.fn(); render( ); renderGlobalModal(); userEvent.click(screen.getByRole('button')); userEvent.type(screen.getByPlaceholderText('CoolOrg'), 'Cool'); expect(screen.getByRole('button', {name: 'Confirm'})).toBeDisabled(); }); it('confirm button is enabled when confirm input matches', function () { const mock = jest.fn(); render( ); renderGlobalModal(); userEvent.click(screen.getByRole('button')); userEvent.type(screen.getByPlaceholderText('CoolOrg'), 'CoolOrg'); expect(screen.getByRole('button', {name: 'Confirm'})).toBeEnabled(); userEvent.click(screen.getByRole('button', {name: 'Confirm'})); expect(mock).toHaveBeenCalled(); expect(mock.mock.calls).toHaveLength(1); }); });