diff --git a/src/__tests__/patients/notes/NotesTab.test.tsx b/src/__tests__/patients/notes/NotesTab.test.tsx index 76ff3cc278..0d9c46eaa2 100644 --- a/src/__tests__/patients/notes/NotesTab.test.tsx +++ b/src/__tests__/patients/notes/NotesTab.test.tsx @@ -1,11 +1,10 @@ /* eslint-disable no-console */ -import * as components from '@hospitalrun/components' -import { mount } from 'enzyme' +import { screen, render } from '@testing-library/react' +import userEvent from '@testing-library/user-event' import { createMemoryHistory } from 'history' import assign from 'lodash/assign' import React from 'react' -import { act } from 'react-dom/test-utils' import { Provider } from 'react-redux' import { Router } from 'react-router-dom' import createMockStore from 'redux-mock-store' @@ -43,18 +42,13 @@ const setup = (props: any = {}) => { user = { permissions } store = mockStore({ patient, user } as any) history.push(route) - let wrapper: any - act(() => { - wrapper = mount( - - - - - , - ) - }) - - return wrapper + return render( + + + + + , + ) } describe('Notes Tab', () => { @@ -65,39 +59,35 @@ describe('Notes Tab', () => { }) it('should render a add notes button', () => { - const wrapper = setup() + setup() - const addNoteButton = wrapper.find(components.Button) - expect(addNoteButton).toHaveLength(1) - expect(addNoteButton.text().trim()).toEqual('patient.notes.new') + expect(screen.getByRole('button', { name: /patient\.notes\.new/i })).toBeInTheDocument() }) it('should not render a add notes button if the user does not have permissions', () => { - const wrapper = setup({ permissions: [] }) + setup({ permissions: [] }) - const addNotesButton = wrapper.find(components.Button) - expect(addNotesButton).toHaveLength(0) + expect(screen.queryByRole('button', { name: /patient\.notes\.new/i })).not.toBeInTheDocument() }) it('should open the Add Notes Modal', () => { - const wrapper = setup() - act(() => { - const onClick = wrapper.find(components.Button).prop('onClick') as any - onClick() - }) - wrapper.update() - - expect(wrapper.find(components.Modal).prop('show')).toBeTruthy() + setup() + + expect(screen.queryByRole('dialog')).not.toBeInTheDocument() + + const addButton = screen.getByRole('button', { name: /patient\.notes\.new/i }) + userEvent.click(addButton) + + expect(screen.getByRole('dialog')).toBeInTheDocument() }) }) describe('/patients/:id/notes', () => { it('should render the view notes screen when /patients/:id/notes is accessed', () => { const route = '/patients/123/notes' const permissions = [Permissions.WritePatients] - const wrapper = setup({ route, permissions }) - act(() => { - expect(wrapper.exists(NoteTab)).toBeTruthy() - }) + setup({ route, permissions }) + + expect(screen.getByText(/patient\.notes\.new/i)).toBeInTheDocument() }) }) })