diff --git a/test/tags/helpers/DeleteTagConfirmModal.test.tsx b/test/tags/helpers/DeleteTagConfirmModal.test.tsx
index 70fac3b3..b141d6a5 100644
--- a/test/tags/helpers/DeleteTagConfirmModal.test.tsx
+++ b/test/tags/helpers/DeleteTagConfirmModal.test.tsx
@@ -1,5 +1,4 @@
-import { shallow, ShallowWrapper } from 'enzyme';
-import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
+import { screen } from '@testing-library/react';
import { DeleteTagConfirmModal } from '../../../src/tags/helpers/DeleteTagConfirmModal';
import { TagDeletion } from '../../../src/tags/reducers/tagDelete';
import { renderWithEvents } from '../../__mocks__/setUpTest';
@@ -19,58 +18,39 @@ describe('', () => {
/>,
);
- let wrapper: ShallowWrapper;
- const createWrapper = (tagDelete: TagDeletion) => {
- wrapper = shallow(
- ''}
- isOpen
- deleteTag={deleteTag}
- tagDeleted={tagDeleted}
- tagDelete={tagDelete}
- />,
- );
-
- return wrapper;
- };
- afterEach(() => wrapper?.unmount());
-
afterEach(jest.resetAllMocks);
it('asks confirmation for provided tag to be deleted', () => {
- wrapper = createWrapper({ error: false, deleting: false });
- const body = wrapper.find(ModalBody);
- const footer = wrapper.find(ModalFooter);
- const delBtn = footer.find(Button).last();
+ setUp({ error: false, deleting: false });
- expect(body.html()).toContain(`Are you sure you want to delete tag ${tag}?`);
- expect(delBtn.prop('disabled')).toEqual(false);
- expect(delBtn.html()).toContain('>Delete tag<');
+ const delBtn = screen.getByRole('button', { name: 'Delete tag' });
+
+ expect(screen.getByText(/^Are you sure you want to delete tag/)).toBeInTheDocument();
+ expect(screen.queryByText('Something went wrong while deleting the tag :(')).not.toBeInTheDocument();
+ expect(delBtn).toBeInTheDocument();
+ expect(delBtn).not.toHaveClass('disabled');
+ expect(delBtn).not.toHaveAttribute('disabled');
});
it('shows error message when deletion failed', () => {
- wrapper = createWrapper({ error: true, deleting: false });
- const body = wrapper.find(ModalBody);
-
- expect(body.html()).toContain('Something went wrong while deleting the tag :(');
+ setUp({ error: true, deleting: false });
+ expect(screen.getByText('Something went wrong while deleting the tag :(')).toBeInTheDocument();
});
it('shows loading status while deleting', () => {
- wrapper = createWrapper({ error: false, deleting: true });
- const footer = wrapper.find(ModalFooter);
- const delBtn = footer.find(Button).last();
+ setUp({ error: false, deleting: true });
- expect(delBtn.prop('disabled')).toEqual(true);
- expect(delBtn.html()).toContain('>Deleting tag...<');
+ const delBtn = screen.getByRole('button', { name: 'Deleting tag...' });
+
+ expect(delBtn).toBeInTheDocument();
+ expect(delBtn).toHaveClass('disabled');
+ expect(delBtn).toHaveAttribute('disabled');
});
- it('deletes tag modal when btn is clicked', async () => {
- wrapper = createWrapper({ error: false, deleting: true });
- const footer = wrapper.find(ModalFooter);
- const delBtn = footer.find(Button).last();
+ it('hides tag modal when btn is clicked', async () => {
+ const { user } = setUp({ error: false, deleting: false });
- await delBtn.simulate('click');
+ await user.click(screen.getByRole('button', { name: 'Delete tag' }));
expect(deleteTag).toHaveBeenCalledTimes(1);
expect(deleteTag).toHaveBeenCalledWith(tag);
@@ -78,11 +58,11 @@ describe('', () => {
expect(tagDeleted).toHaveBeenCalledWith(tag);
});
- it('does no further actions when modal is closed without deleting tag', () => {
- wrapper = createWrapper({ error: false, deleting: false });
- const modal = wrapper.find(Modal);
+ it('does no further actions when modal is closed without deleting tag', async () => {
+ const { user } = setUp({ error: false, deleting: false });
+
+ await user.click(screen.getByLabelText('Close'));
- modal.simulate('closed');
expect(deleteTag).not.toHaveBeenCalled();
expect(tagDeleted).not.toHaveBeenCalled();
});