diff --git a/src/server/accessibility/__snapshots__/index.test.js.snap b/src/server/accessibility/__snapshots__/index.test.js.snap new file mode 100644 index 00000000..95a2f78d --- /dev/null +++ b/src/server/accessibility/__snapshots__/index.test.js.snap @@ -0,0 +1,53 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`#accessibilityStatementPage should render expected response and content 1`] = ` +" +
+
+
+

Accessibility statement

+

+ Accessibility statement for Get permission to move animals under + disease control. +

+ +

+ How you should be able to use this website +

+

+ We want as many people as possible to be able to use this website. +

+

You should be able to:

+
    +
  • + Change colours, contrast levels and fonts using browser or device + settings +
  • +
  • Zoom in up to 200% without the text spilling off the screen
  • +
  • + Navigate most of the website using a keyboard or speech recognition + software +
  • +
  • + Listen to most of the website using a screen reader (including the + most recent versions of JAWS, NVDA and VoiceOver) +
  • +
  • + We also make the website text as simple as possible to understand +
  • +
+ +

How accessible this website is

+

+ While most of this website is fully accessible, we are engaging in a + full accessibility audit that may uncover unknown accessibility + issues. If you encounter any, please + give your feedback (opens in new tab) + + to let us know how we can improve. +

+
+
+
+ " +`; diff --git a/src/server/accessibility/index.js b/src/server/accessibility/index.js new file mode 100644 index 00000000..37d0865c --- /dev/null +++ b/src/server/accessibility/index.js @@ -0,0 +1,26 @@ +import { Page } from '~/src/server/common/model/page/page-model.js' +import { PageController } from '~/src/server/common/controller/page-controller/page-controller.js' + +const pageTitle = 'Accessibility statement' + +export class AccessibilityStatementPage extends Page { + sectionKey = 'policies' + key = 'accessibility-statement' + pageTitle = pageTitle + pageHeading = pageTitle + urlPath = '/accessibility-statement' + view = 'accessibility/index' +} + +export const accessibilityStatementPage = new AccessibilityStatementPage() + +/** + * @satisfies {ServerRegisterPluginObject} + */ +export const accessibilityStatement = new PageController( + accessibilityStatementPage +).plugin() + +/** + * @import { ServerRegisterPluginObject } from '@hapi/hapi' + */ diff --git a/src/server/accessibility/index.njk b/src/server/accessibility/index.njk new file mode 100644 index 00000000..1421066b --- /dev/null +++ b/src/server/accessibility/index.njk @@ -0,0 +1,58 @@ +{% + extends + 'layouts/page.njk' +%} +{% block content %} +
+
+
+

{{ heading }}

+

+ Accessibility statement for Get permission to move animals under + disease control. +

+ +

+ How you should be able to use this website +

+

+ We want as many people as possible to be able to use this website. +

+

You should be able to:

+
    +
  • + Change colours, contrast levels and fonts using browser or device + settings +
  • +
  • Zoom in up to 200% without the text spilling off the screen
  • +
  • + Navigate most of the website using a keyboard or speech recognition + software +
  • +
  • + Listen to most of the website using a screen reader (including the + most recent versions of JAWS, NVDA and VoiceOver) +
  • +
  • + We also make the website text as simple as possible to understand +
  • +
+ +

How accessible this website is

+

+ While most of this website is fully accessible, we are engaging in a + full accessibility audit that may uncover unknown accessibility + issues. If you encounter any, please + give your feedback (opens in new tab) + + to let us know how we can improve. +

+
+
+
+{% endblock %} diff --git a/src/server/accessibility/index.test.js b/src/server/accessibility/index.test.js new file mode 100644 index 00000000..2d792536 --- /dev/null +++ b/src/server/accessibility/index.test.js @@ -0,0 +1,7 @@ +import { describePageSnapshot } from '../common/test-helpers/snapshot-page.js' + +describePageSnapshot({ + describes: '#accessibilityStatementPage', + it: 'should render expected response and content', + pageUrl: '/accessibility-statement' +}) diff --git a/src/server/common/templates/layouts/page.njk b/src/server/common/templates/layouts/page.njk index ce37f89e..856951dd 100644 --- a/src/server/common/templates/layouts/page.njk +++ b/src/server/common/templates/layouts/page.njk @@ -85,7 +85,7 @@ } }, { - href: "https://www.gov.uk/help/accessibility-statement", + href: "/accessibility-statement", text: "Accessibility statement", attributes: { 'data-testid': 'accessibility-statement-link' diff --git a/src/server/cookies-policy/__snapshots__/index.test.js.snap b/src/server/cookies-policy/__snapshots__/index.test.js.snap index bba6c29c..73992b13 100644 --- a/src/server/cookies-policy/__snapshots__/index.test.js.snap +++ b/src/server/cookies-policy/__snapshots__/index.test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`#destinationSummaryController should render expected response and content 1`] = ` +exports[`#cookiesPolicyPage should render expected response and content 1`] = ` "
diff --git a/src/server/cookies-policy/index.js b/src/server/cookies-policy/index.js index 52f31d89..37ab3bde 100644 --- a/src/server/cookies-policy/index.js +++ b/src/server/cookies-policy/index.js @@ -2,6 +2,8 @@ import { Page } from '~/src/server/common/model/page/page-model.js' import { PageController } from '~/src/server/common/controller/page-controller/page-controller.js' export class CookiesPolicyPage extends Page { + sectionKey = 'policies' + key = 'cookies' pageTitle = 'Cookies' pageHeading = 'Cookies' urlPath = '/cookies' diff --git a/src/server/cookies-policy/index.test.js b/src/server/cookies-policy/index.test.js index 5304d133..536993cb 100644 --- a/src/server/cookies-policy/index.test.js +++ b/src/server/cookies-policy/index.test.js @@ -1,11 +1,7 @@ import { describePageSnapshot } from '../common/test-helpers/snapshot-page.js' describePageSnapshot({ - describes: '#destinationSummaryController', + describes: '#cookiesPolicyPage', it: 'should render expected response and content', pageUrl: '/cookies' }) - -/** - * @import { Server } from '@hapi/hapi' - */ diff --git a/src/server/router.js b/src/server/router.js index 12b56409..9f274831 100644 --- a/src/server/router.js +++ b/src/server/router.js @@ -17,6 +17,7 @@ import { receiveMethod } from './licence/receiveMethod/index.js' import { postExit } from './licence/postExitPage/index.js' import { fullName } from './licence/fullName/index.js' import { cookiesPolicy } from './cookies-policy/index.js' +import { accessibilityStatement } from './accessibility/index.js' import { config } from '../config/config.js' import { keptSeparately } from './biosecurity/kept-separately/index.js' @@ -37,6 +38,7 @@ export const router = { home, privacyPolicy, cookiesPolicy, + accessibilityStatement, origin, destination, licence, diff --git a/user-journey-tests/page-objects/accessibilityStatementPage.js b/user-journey-tests/page-objects/accessibilityStatementPage.js new file mode 100644 index 00000000..fbc08f8a --- /dev/null +++ b/user-journey-tests/page-objects/accessibilityStatementPage.js @@ -0,0 +1,11 @@ +import { Page } from './page.js' + +const pageHeadingAndTitle = 'Accessibility statement' + +class AccessibilityStatementPage extends Page { + pagePath = '/accessibility-statement' + pageHeading = pageHeadingAndTitle + pageTitle = pageHeadingAndTitle +} + +export default new AccessibilityStatementPage() diff --git a/user-journey-tests/page-objects/page.js b/user-journey-tests/page-objects/page.js index 27e3f317..f26b2542 100644 --- a/user-journey-tests/page-objects/page.js +++ b/user-journey-tests/page-objects/page.js @@ -101,18 +101,20 @@ class Page { this.getPricacyFooterLink(), '/privacy-policy' ) + await page.validateElementVisibleAndText( this.getCookiesFooterLink(), 'Cookies' ) await page.validateHrefOfElement(this.getCookiesFooterLink(), '/cookies') + await page.validateElementVisibleAndText( this.getAccessibilityFooterLink(), 'Accessibility statement' ) await page.validateHrefOfElement( this.getAccessibilityFooterLink(), - 'https://www.gov.uk/help/accessibility-statement' + '/accessibility-statement' ) } diff --git a/user-journey-tests/specs/landing.spec.js b/user-journey-tests/specs/landing.spec.js index a52bba04..66767fae 100644 --- a/user-journey-tests/specs/landing.spec.js +++ b/user-journey-tests/specs/landing.spec.js @@ -7,6 +7,7 @@ import { import cookiesPage from '../page-objects/cookiesPage.js' import landingPage from '../page-objects/landingPage.js' import taskListPage from '../page-objects/taskListPage.js' +import accessibilityStatementPage from '../page-objects/accessibilityStatementPage.js' describe('Landing page test', () => { beforeEach('Reset browser state and navigate to page', async () => { @@ -42,6 +43,7 @@ describe('Landing page test', () => { it('Should verify the accessibility link in the footer', async () => { await selectElement(landingPage.getAccessibilityFooterLink()) - await waitForFullPageUrl('https://www.gov.uk/help/accessibility-statement') + await waitForPagePath(accessibilityStatementPage.pagePath) + await accessibilityStatementPage.verifyPageHeadingAndTitle() }) })