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', async function () { const mock = jest.fn(); render( ); renderGlobalModal(); await userEvent.click(screen.getByRole('button')); }); it('confirm button is disabled and bypass prop is false when modal opens', async function () { const mock = jest.fn(); render( ); renderGlobalModal(); await userEvent.click(screen.getByRole('button')); expect(screen.getByRole('button', {name: 'Confirm'})).toBeDisabled(); }); it('confirm button stays disabled with non-matching input', async function () { const mock = jest.fn(); render( ); renderGlobalModal(); await userEvent.click(screen.getByRole('button')); await userEvent.type(screen.getByPlaceholderText('CoolOrg'), 'Cool'); expect(screen.getByRole('button', {name: 'Confirm'})).toBeDisabled(); }); it('confirm button is enabled when confirm input matches', async function () { const mock = jest.fn(); render( ); renderGlobalModal(); await userEvent.click(screen.getByRole('button')); await userEvent.type(screen.getByPlaceholderText('CoolOrg'), 'CoolOrg'); expect(screen.getByRole('button', {name: 'Confirm'})).toBeEnabled(); await userEvent.click(screen.getByRole('button', {name: 'Confirm'})); expect(mock).toHaveBeenCalled(); expect(mock.mock.calls).toHaveLength(1); }); });