From 565f9645ce44e2f81feb0720686dec533aed8e88 Mon Sep 17 00:00:00 2001
From: Iosif Psychas <3214876+TheGallery@users.noreply.github.com>
Date: Wed, 16 Dec 2020 06:27:42 +0000
Subject: [PATCH 1/2] refactor: migrate page-header/breadcrumbs/Breadcrumbs
tests
---
.../breadcrumbs/Breadcrumbs.test.tsx | 29 ++++++++-----------
1 file changed, 12 insertions(+), 17 deletions(-)
diff --git a/src/__tests__/page-header/breadcrumbs/Breadcrumbs.test.tsx b/src/__tests__/page-header/breadcrumbs/Breadcrumbs.test.tsx
index 397630ffc9..b216c29532 100644
--- a/src/__tests__/page-header/breadcrumbs/Breadcrumbs.test.tsx
+++ b/src/__tests__/page-header/breadcrumbs/Breadcrumbs.test.tsx
@@ -1,8 +1,4 @@
-import {
- Breadcrumb as HRBreadcrumb,
- BreadcrumbItem as HRBreadcrumbItem,
-} from '@hospitalrun/components'
-import { mount } from 'enzyme'
+import { render, screen } from '@testing-library/react'
import { createMemoryHistory } from 'history'
import React from 'react'
import { Provider } from 'react-redux'
@@ -23,22 +19,20 @@ describe('Breadcrumbs', () => {
breadcrumbs: { breadcrumbs },
} as any)
- const wrapper = mount(
+ return render(
,
)
-
- return wrapper
}
it('should not render the breadcrumb when there are no items in the store', () => {
- const wrapper = setup([])
+ setup([])
- expect(wrapper.find(HRBreadcrumb)).toHaveLength(0)
- expect(wrapper.find(HRBreadcrumbItem)).toHaveLength(0)
+ expect(screen.queryByRole('list')).toBeNull()
+ expect(screen.queryByRole('listitem')).toBeNull()
})
it('should render breadcrumbs items', () => {
@@ -47,13 +41,14 @@ describe('Breadcrumbs', () => {
{ text: 'Bob', location: '/patient/1' },
{ text: 'Edit Patient', location: '/patient/1/edit' },
]
- const wrapper = setup(breadcrumbs)
- const items = wrapper.find(HRBreadcrumbItem)
+ setup(breadcrumbs)
+
+ const breadCrumbItems = screen.getAllByRole('listitem')
- expect(items).toHaveLength(3)
- expect(items.at(0).text()).toEqual('patient.label')
- expect(items.at(1).text()).toEqual('Bob')
- expect(items.at(2).text()).toEqual('Edit Patient')
+ expect(breadCrumbItems).toHaveLength(3)
+ expect(breadCrumbItems[0]).toHaveTextContent('patient.label')
+ expect(breadCrumbItems[1]).toHaveTextContent('Bob')
+ expect(breadCrumbItems[2]).toHaveTextContent('Edit Patient')
})
})
From 8e0478f4d816eb7f337a241dfd9a7690a6a76105 Mon Sep 17 00:00:00 2001
From: Iosif Psychas <3214876+TheGallery@users.noreply.github.com>
Date: Wed, 16 Dec 2020 06:55:54 +0000
Subject: [PATCH 2/2] chore: move repeated code to setup function
---
.../breadcrumbs/useAddBreadcrumbs.test.tsx | 32 +++++++------------
1 file changed, 11 insertions(+), 21 deletions(-)
diff --git a/src/__tests__/page-header/breadcrumbs/useAddBreadcrumbs.test.tsx b/src/__tests__/page-header/breadcrumbs/useAddBreadcrumbs.test.tsx
index 50732bc28d..997658d514 100644
--- a/src/__tests__/page-header/breadcrumbs/useAddBreadcrumbs.test.tsx
+++ b/src/__tests__/page-header/breadcrumbs/useAddBreadcrumbs.test.tsx
@@ -13,16 +13,21 @@ const mockStore = createMockStore([thunk])
describe('useAddBreadcrumbs', () => {
beforeEach(() => jest.clearAllMocks())
- it('should call addBreadcrumbs with the correct data', () => {
- const wrapper = ({ children }: any) => {children}
-
- jest.spyOn(breadcrumbsSlice, 'addBreadcrumbs')
+ const setup = () => {
const breadcrumbs = [
{
text: 'Patients',
location: '/patients',
},
]
+ const wrapper = ({ children }: any) => {children}
+
+ return { breadcrumbs, wrapper }
+ }
+
+ it('should call addBreadcrumbs with the correct data', () => {
+ jest.spyOn(breadcrumbsSlice, 'addBreadcrumbs')
+ const { breadcrumbs, wrapper } = setup()
renderHook(() => useAddBreadcrumbs(breadcrumbs), { wrapper } as any)
expect(breadcrumbsSlice.addBreadcrumbs).toHaveBeenCalledTimes(1)
@@ -30,15 +35,8 @@ describe('useAddBreadcrumbs', () => {
})
it('should call addBreadcrumbs with an additional dashboard breadcrumb', () => {
- const wrapper = ({ children }: any) => {children}
-
jest.spyOn(breadcrumbsSlice, 'addBreadcrumbs')
- const breadcrumbs = [
- {
- text: 'Patients',
- location: '/patients',
- },
- ]
+ const { breadcrumbs, wrapper } = setup()
renderHook(() => useAddBreadcrumbs(breadcrumbs, true), { wrapper } as any)
expect(breadcrumbsSlice.addBreadcrumbs).toHaveBeenCalledTimes(1)
@@ -49,16 +47,8 @@ describe('useAddBreadcrumbs', () => {
})
it('should call removeBreadcrumbs with the correct data after unmount', () => {
- const wrapper = ({ children }: any) => {children}
-
- jest.spyOn(breadcrumbsSlice, 'addBreadcrumbs')
jest.spyOn(breadcrumbsSlice, 'removeBreadcrumbs')
- const breadcrumbs = [
- {
- text: 'Patients',
- location: '/patients',
- },
- ]
+ const { breadcrumbs, wrapper } = setup()
const { unmount } = renderHook(() => useAddBreadcrumbs(breadcrumbs), { wrapper } as any)
unmount()