Skip to content

Commit 0f133f1

Browse files
[PRME-177] fix dob and nhs number formatting on upload complete stage (#740)
* [PRME-177] fix dob and nhs number formatting on upload complete stage * [PRME-177] add UT for testing the actual patient details * cleanup * [PRME-177] export getFormattedDateFromString functionality
1 parent c3bd144 commit 0f133f1

File tree

3 files changed

+40
-11
lines changed

3 files changed

+40
-11
lines changed

app/src/components/blocks/_documentUpload/documentUploadCompleteStage/DocumentUploadCompleteStage.test.tsx

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ import DocumentUploadCompleteStage from './DocumentUploadCompleteStage';
33
import userEvent from '@testing-library/user-event';
44
import { routes } from '../../../../types/generic/routes';
55
import { LinkProps } from 'react-router-dom';
6+
import { buildPatientDetails } from '../../../../helpers/test/testBuilders';
7+
import { getFormattedDate } from '../../../../helpers/utils/formatDate';
8+
import { formatNhsNumber } from '../../../../helpers/utils/formatNhsNumber';
9+
import usePatient from '../../../../helpers/hooks/usePatient';
610

711
const mockNavigate = vi.fn();
812
vi.mock('../../../../helpers/hooks/usePatient');
@@ -13,8 +17,11 @@ vi.mock('react-router-dom', () => ({
1317

1418
URL.createObjectURL = vi.fn();
1519

20+
const patientDetails = buildPatientDetails();
21+
1622
describe('DocumentUploadCompleteStage', () => {
1723
beforeEach(() => {
24+
vi.mocked(usePatient).mockReturnValue(patientDetails);
1825
import.meta.env.VITE_ENVIRONMENT = 'vitest';
1926
});
2027
afterEach(() => {
@@ -24,13 +31,21 @@ describe('DocumentUploadCompleteStage', () => {
2431
it('renders', async () => {
2532
render(<DocumentUploadCompleteStage />);
2633

27-
await waitFor(async () => {
28-
expect(
29-
screen.getByText(
30-
'You have successfully uploaded a digital Lloyd George record for:',
31-
),
32-
).toBeInTheDocument();
33-
});
34+
expect(
35+
screen.getByText(
36+
'You have successfully uploaded a digital Lloyd George record for:',
37+
),
38+
).toBeInTheDocument();
39+
40+
const expectedFullName = `${patientDetails.familyName}, ${patientDetails.givenName}`;
41+
expect(screen.getByTestId("patient-name").textContent).toEqual("Patient name: " + expectedFullName)
42+
43+
const expectedNhsNumber = formatNhsNumber(patientDetails.nhsNumber);
44+
expect(screen.getByTestId("nhs-number").textContent).toEqual("NHS Number: " + expectedNhsNumber)
45+
46+
const expectedDob = getFormattedDate(new Date(patientDetails.birthDate));
47+
expect(screen.getByTestId("dob").textContent).toEqual("Date of birth: " + expectedDob)
48+
3449
});
3550

3651
it('should navigate to search when clicking the search link', async () => {

app/src/components/blocks/_documentUpload/documentUploadCompleteStage/DocumentUploadCompleteStage.tsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,20 @@ import { routes } from '../../../../types/generic/routes';
33
import { Link, useNavigate } from 'react-router-dom';
44
import useTitle from '../../../../helpers/hooks/useTitle';
55
import usePatient from '../../../../helpers/hooks/usePatient';
6+
import { formatNhsNumber } from '../../../../helpers/utils/formatNhsNumber';
7+
import { getFormattedDateFromString } from '../../../../helpers/utils/formatDate';
68

79
const DocumentUploadCompleteStage = () => {
810
const navigate = useNavigate();
911
const patientDetails = usePatient();
12+
const nhsNumber: string = patientDetails?.nhsNumber ?? '';
13+
const formattedNhsNumber = formatNhsNumber(nhsNumber);
14+
const dob: string = getFormattedDateFromString(patientDetails?.birthDate)
1015

1116
useTitle({ pageTitle: 'Record upload complete' });
1217

18+
const patientName = `${patientDetails?.familyName}, ${patientDetails?.givenName}`
19+
1320
return (
1421
<div className="lloydgeorge_upload-complete" data-testid="upload-complete-page">
1522
<div className="nhsuk-panel" data-testid="upload-complete-card">
@@ -19,13 +26,13 @@ const DocumentUploadCompleteStage = () => {
1926
</div>
2027
<br />
2128
<div className="nhsuk-panel__body">
22-
<strong>
23-
Patient name: {patientDetails?.familyName}, {patientDetails?.givenName}
29+
<strong data-testid="patient-name">
30+
Patient name: {patientName}
2431
</strong>
2532
<br />
26-
<span>NHS Number: {patientDetails?.nhsNumber}</span>
33+
<span data-testid="nhs-number">NHS Number: {formattedNhsNumber}</span>
2734
<br />
28-
<span>Date of birth: {patientDetails?.birthDate}</span>
35+
<span data-testid="dob">Date of birth: {dob}</span>
2936
</div>
3037
</div>
3138

app/src/helpers/utils/formatDate.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,10 @@ export const formatDateWithDashes = (date: Date): string => {
99

1010
return `${day}-${month}-${year}`;
1111
};
12+
13+
export const getFormattedDateFromString = (dateString: string | undefined): string => {
14+
if (!dateString) {
15+
return '';
16+
}
17+
return getFormattedDate(new Date(dateString));
18+
};

0 commit comments

Comments
 (0)