From 7c9faeae2bf12fcfd72e3fed38fa5833b2936a52 Mon Sep 17 00:00:00 2001 From: Rio Knightley <128376976+RioKnightleyNHS@users.noreply.github.com> Date: Thu, 30 Nov 2023 09:25:15 +0000 Subject: [PATCH] PRMDR-528 BSOL Start Content (#172) Add new start content --- .../e2e/0-ndr-core-tests/homepage.cy.js | 6 +- .../components/layout/header/Header.test.tsx | 2 +- app/src/components/layout/header/Header.tsx | 2 +- app/src/pages/homePage/HomePage.test.tsx | 52 +++++++++++------- app/src/pages/homePage/HomePage.tsx | 55 ++++++++++--------- 5 files changed, 66 insertions(+), 51 deletions(-) diff --git a/app/cypress/e2e/0-ndr-core-tests/homepage.cy.js b/app/cypress/e2e/0-ndr-core-tests/homepage.cy.js index 129c85c11..e9509a45d 100644 --- a/app/cypress/e2e/0-ndr-core-tests/homepage.cy.js +++ b/app/cypress/e2e/0-ndr-core-tests/homepage.cy.js @@ -16,7 +16,7 @@ describe('home page', () => { cy.get('.nhsuk-header__transactional-service-name').children().should('have.length', 1); cy.get('.nhsuk-header__transactional-service-name--link').should( 'have.text', - 'Inactive Patient Record Administration', + 'Access and store digital GP records', ); cy.get('.nhsuk-header__navigation').should('have.length', 1); @@ -41,7 +41,7 @@ describe('home page', () => { cy.get('.nhsuk-header__transactional-service-name').children().should('have.length', 1); cy.get('.nhsuk-header__transactional-service-name--link').should( 'have.text', - 'Inactive Patient Record Administration', + 'Access and store digital GP records', ); cy.get('.nhsuk-header__navigation').should('have.length', 0); @@ -51,7 +51,7 @@ describe('home page', () => { it('displays correct page title on home page', () => { cy.get('.app-homepage-content h1').should( 'have.text', - 'Inactive Patient Record Administration', + 'Access and store digital GP records', ); }); diff --git a/app/src/components/layout/header/Header.test.tsx b/app/src/components/layout/header/Header.test.tsx index 5f06bb5f3..51ef65301 100644 --- a/app/src/components/layout/header/Header.test.tsx +++ b/app/src/components/layout/header/Header.test.tsx @@ -30,7 +30,7 @@ describe('Header', () => { it('navigates to the home page when header is clicked', async () => { renderHeaderWithRouter(); - userEvent.click(screen.getByText('Inactive Patient Record Administration')); + userEvent.click(screen.getByText('Access and store digital GP records')); await waitFor(() => { expect(mockedUseNavigate).toHaveBeenCalledWith(routes.HOME); diff --git a/app/src/components/layout/header/Header.tsx b/app/src/components/layout/header/Header.tsx index 384d70e92..4fb56b59b 100644 --- a/app/src/components/layout/header/Header.tsx +++ b/app/src/components/layout/header/Header.tsx @@ -16,7 +16,7 @@ const Header = (props: Props) => { - Inactive Patient Record Administration + Access and store digital GP records diff --git a/app/src/pages/homePage/HomePage.test.tsx b/app/src/pages/homePage/HomePage.test.tsx index aa76abe11..c5e0a9037 100644 --- a/app/src/pages/homePage/HomePage.test.tsx +++ b/app/src/pages/homePage/HomePage.test.tsx @@ -17,47 +17,61 @@ describe('StartPage', () => { expect( screen.getByRole('heading', { - name: 'Inactive Patient Record Administration', + name: 'Access and store digital GP records', }), ).toBeInTheDocument(); }); - it('renders service info', () => { + it('renders home page content', () => { const mockNavigate = jest.fn(); const mockUseNavigate = jest.fn(); mockNavigate.mockImplementation(() => mockUseNavigate); - render(); + const contentStrings = [ + 'This service gives you access to Lloyd George digital health records.', + 'You can use this service if you are:', + 'part of a GP practise and need to view, download or remove a patient record', + 'managing records on behalf of NHS England and need to download a patient record', + 'Not every patient will have a digital record available.', + 'Before You Start', + "You'll be asked for:", + 'your NHS smartcard', + 'patient details including their name, date of birth and NHS number', + ]; - expect(screen.getByText(/When a patient is inactive/)).toBeInTheDocument(); - expect(screen.getByText(/General Practice Staff/)).toBeInTheDocument(); - expect(screen.getByText(/PCSE should use this service/)).toBeInTheDocument(); + render(); + contentStrings.forEach((s) => { + expect(screen.getByText(s)).toBeInTheDocument(); + }); + expect(screen.getByText(/Contact the/i)).toBeInTheDocument(); + expect( + screen.getByRole('link', { + name: /NHS National Service Desk/i, + }), + ).toBeInTheDocument(); + expect( + screen.getByText(/if there is an issue with this service or call 0300 303 5678/i), + ).toBeInTheDocument(); }); - it('renders service issue guidance with a link to service desk that opens in a new tab', () => { + it('renders a service link that takes you to service help-desk in a new tab', () => { const mockUseNavigate = jest.fn(); mockNavigate.mockImplementation(() => mockUseNavigate); render(); - expect(screen.getByText(/If there is an issue/)).toBeInTheDocument(); + expect(screen.getByText(/Contact the/i)).toBeInTheDocument(); const nationalServiceDeskLink = screen.getByRole('link', { - name: /National Service Desk/, + name: /NHS National Service Desk/i, }); + expect( + screen.getByText(/if there is an issue with this service or call 0300 303 5678/i), + ).toBeInTheDocument(); + expect(nationalServiceDeskLink).toHaveAttribute( 'href', 'https://digital.nhs.uk/about-nhs-digital/contact-us#nhs-digital-service-desks', ); expect(nationalServiceDeskLink).toHaveAttribute('target', '_blank'); }); - - it("renders a 'Before you start' section", () => { - const mockUseNavigate = jest.fn(); - mockNavigate.mockImplementation(() => mockUseNavigate); - - render(); - - expect(screen.getByRole('heading', { name: 'Before You Start' })).toBeInTheDocument(); - expect(screen.getByText(/valid NHS smartcard/)).toBeInTheDocument(); - }); }); diff --git a/app/src/pages/homePage/HomePage.tsx b/app/src/pages/homePage/HomePage.tsx index 0fae3d7e4..2e6b7a219 100644 --- a/app/src/pages/homePage/HomePage.tsx +++ b/app/src/pages/homePage/HomePage.tsx @@ -26,41 +26,42 @@ function HomePage(props: Props) { }; return !isLoading ? ( <> -

Inactive Patient Record Administration

-

- When a patient is inactive, NHS England via Primary Care Support England are - responsible for administration of their Electronic health record (EHR) and - attachments until they register at their next GP Practice. -

-

- General Practice Staff should use this service to upload an inactive patient's - electronic health record and attachments. -

-

- PCSE should use this service to search for and download patient records where there - has been an access request for an inactive patient health record. -

-

- If there is an issue with the service please contact the{' '} - - NHS National Service Desk - - . -

+

Access and store digital GP records

+

This service gives you access to Lloyd George digital health records.

+

You can use this service if you are:

+
    +
  • part of a GP practise and need to view, download or remove a patient record
  • +
  • + managing records on behalf of NHS England and need to download a patient record +
  • +
+

Not every patient will have a digital record available.

Before You Start

-

You can only use this service if you have a valid NHS smartcard.

+

You'll be asked for:

+
    +
  • your NHS smartcard
  • +
  • patient details including their name, date of birth and NHS number
  • +
Start now +

Get support with the service

+ {'Contact the '} + + NHS National Service Desk + + {' if there is an issue with this service or call 0300 303 5678'} {(process.env.REACT_APP_ENVIRONMENT === 'local' || process.env.REACT_APP_ENVIRONMENT === 'development' || process.env.REACT_APP_ENVIRONMENT === 'test') && (
-

+
+
+

Test Panel

This section should only be displayed on a test/dev environment and should