Skip to content
This repository was archived by the owner on Jan 9, 2023. It is now read-only.

Commit 4195a55

Browse files
author
Ignacio Gea
committed
Merge branch 'patient-appointment-list' of https://github.com/igeagonz/hospitalrun-frontend into patient-appointment-list
2 parents b715358 + 1c86717 commit 4195a55

File tree

3 files changed

+60
-13
lines changed

3 files changed

+60
-13
lines changed

src/__tests__/patients/related-persons/RelatedPersons.test.tsx

+36-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Router } from 'react-router'
44
import { createMemoryHistory } from 'history'
55
import { mount } from 'enzyme'
66
import RelatedPersonTab from 'patients/related-persons/RelatedPersonTab'
7-
import { Button, List, ListItem } from '@hospitalrun/components'
7+
import { Button, List, ListItem, Alert } from '@hospitalrun/components'
88
import NewRelatedPersonModal from 'patients/related-persons/NewRelatedPersonModal'
99
import { act } from '@testing-library/react'
1010
import PatientRepository from 'clients/db/PatientRepository'
@@ -200,4 +200,39 @@ describe('Related Persons Tab', () => {
200200
expect(history.location.pathname).toEqual('/patients/123001')
201201
})
202202
})
203+
204+
describe('EmptyList', () => {
205+
const patient = {
206+
id: '123',
207+
rev: '123',
208+
} as Patient
209+
210+
const user = {
211+
permissions: [Permissions.WritePatients, Permissions.ReadPatients],
212+
}
213+
214+
beforeEach(async () => {
215+
jest.spyOn(PatientRepository, 'find')
216+
mocked(PatientRepository.find).mockResolvedValue({
217+
fullName: 'test test',
218+
id: '123001',
219+
} as Patient)
220+
221+
await act(async () => {
222+
wrapper = await mount(
223+
<Router history={history}>
224+
<Provider store={mockStore({ patient, user })}>
225+
<RelatedPersonTab patient={patient} />
226+
</Provider>
227+
</Router>,
228+
)
229+
})
230+
wrapper.update()
231+
})
232+
233+
it('should display a warning if patient has no related persons', () => {
234+
const warning = wrapper.find(Alert)
235+
expect(warning).toBeDefined()
236+
})
237+
})
203238
})

src/locales/en-US/translation.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@
3838
"relatedPersonRequired": "Related Person is required.",
3939
"relationshipTypeRequired": "Relationship Type is required."
4040
},
41+
"warning": {
42+
"noRelatedPersons": "No Related Persons"
43+
},
4144
"label": "Related Persons",
4245
"new": "New Related Person",
43-
"relationshipType": "Relationship Type"
46+
"relationshipType": "Relationship Type",
47+
"addRelatedPersonAbove": "Add a related person using the button above."
4448
},
4549
"types": {
4650
"charity": "Charity",

src/patients/related-persons/RelatedPersonTab.tsx

+19-11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { useState, useEffect } from 'react'
2-
import { Button, Panel, List, ListItem } from '@hospitalrun/components'
2+
import { Button, Panel, List, ListItem, Alert, Spinner } from '@hospitalrun/components'
33
import NewRelatedPersonModal from 'patients/related-persons/NewRelatedPersonModal'
44
import RelatedPerson from 'model/RelatedPerson'
55
import { useTranslation } from 'react-i18next'
@@ -38,9 +38,9 @@ const RelatedPersonTab = (props: Props) => {
3838
fetchedRelatedPersons.push(fetchedRelatedPerson)
3939
}),
4040
)
41-
42-
setRelatedPersons(fetchedRelatedPersons)
4341
}
42+
43+
setRelatedPersons(fetchedRelatedPersons)
4444
}
4545

4646
fetchRelatedPersons()
@@ -97,15 +97,23 @@ const RelatedPersonTab = (props: Props) => {
9797
<div className="col-md-12">
9898
<Panel title={t('patient.relatedPersons.label')} color="primary" collapsible>
9999
{relatedPersons ? (
100-
<List>
101-
{relatedPersons.map((r) => (
102-
<ListItem action key={r.id} onClick={() => onRelatedPersonClick(r.id)}>
103-
{r.fullName}
104-
</ListItem>
105-
))}
106-
</List>
100+
relatedPersons.length > 0 ? (
101+
<List>
102+
{relatedPersons.map((r) => (
103+
<ListItem action key={r.id} onClick={() => onRelatedPersonClick(r.id)}>
104+
{r.fullName}
105+
</ListItem>
106+
))}
107+
</List>
108+
) : (
109+
<Alert
110+
color="warning"
111+
title={t('patient.relatedPersons.warning.noRelatedPersons')}
112+
message={t('patient.relatedPersons.addRelatedPersonAbove')}
113+
/>
114+
)
107115
) : (
108-
<h1>Loading...</h1>
116+
<Spinner color="blue" loading size={[10, 25]} type="ScaleLoader" />
109117
)}
110118
</Panel>
111119
</div>

0 commit comments

Comments
 (0)