diff --git a/e2e/tests/adminManagesLocalAuthorities_test.js b/e2e/tests/adminManagesLocalAuthorities_test.js deleted file mode 100644 index 2685f638e12..00000000000 --- a/e2e/tests/adminManagesLocalAuthorities_test.js +++ /dev/null @@ -1,261 +0,0 @@ -const config = require('../config.js'); -const api = require('../helpers/api_helper'); -const assert = require('assert'); - -const mandatoryWithMultipleChildren = require('../fixtures/caseData/mandatoryWithMultipleChildren.json'); - -const SHARED_LA_ROLE = '[LASHARED]'; - -const swanseaLocalAuthority = { - name: 'Swansea City Council', - email: 'swansea@test.com', - court: 'Family Court sitting at Swansea', -}; - -const hillingdonLocalAuthority = { - name: 'London Borough Hillingdon', - email: 'hilindon@test.com', - court: 'Family Court sitting at West London', -}; - -const transferredLocalAuthoritySolicitor = { - name: 'Emma Green', - email: 'emma.green@test.com', -}; - -let caseId; - -Feature('HMCTS admin manages local authorities'); - -async function setupScenario(I) { - if (!caseId) { - caseId = await I.submitNewCaseWithData(mandatoryWithMultipleChildren); - } - await I.navigateToCaseDetailsAs(config.hmctsAdminUser, caseId); -} - -Scenario('HMCTS admin adds secondary local authority @nightlyOnly', async ({I, caseViewPage, manageLocalAuthoritiesEventPage}) => { - - await setupScenario(I); - await caseViewPage.goToNewActions(config.administrationActions.manageLocalAuthorities); - manageLocalAuthoritiesEventPage.selectAddLocalAuthority(); - await manageLocalAuthoritiesEventPage.selectLocalAuthority(hillingdonLocalAuthority.name); - await I.goToNextPage(); - - const email = manageLocalAuthoritiesEventPage.getEmailAddress(); - assert.ok(email); - await manageLocalAuthoritiesEventPage.setEmailAddress(hillingdonLocalAuthority.email); - - await I.completeEvent('Save and continue'); - I.seeEventSubmissionConfirmation(config.administrationActions.manageLocalAuthorities); - - caseViewPage.selectTab(caseViewPage.tabs.casePeople); - - I.seeInTab(['Local authority 1', 'Name'], swanseaLocalAuthority.name); - I.seeTagInTab(['Local authority 1', 'Designated local authority']); - - I.seeInTab(['Local authority 2', 'Name'], hillingdonLocalAuthority.name); - I.seeInTab(['Local authority 2', 'Group email address'], hillingdonLocalAuthority.email); - I.dontSeeTagInTab(['Local authority 2', 'Designated local authority']); - I.dontSeeInTab('Local authority 2', 'Colleague 1'); -}); - -Scenario('Designated local authority solicitor can see all local authorities but updates only his own @nightlyOnly', async ({I, caseViewPage, enterLocalAuthorityEventPage}) => { - - await setupScenario(I); - await I.navigateToCaseDetailsAs(config.swanseaLocalAuthorityUserOne, caseId); - - caseViewPage.selectTab(caseViewPage.tabs.casePeople); - - I.seeInTab(['Local authority 1', 'Name'], swanseaLocalAuthority.name); - I.seeTagInTab(['Local authority 1', 'Designated local authority']); - - I.seeInTab(['Local authority 2', 'Name'], hillingdonLocalAuthority.name); - I.dontSeeTagInTab(['Local authority 2', 'Designated local authority']); - - await caseViewPage.goToNewActions(config.applicationActions.enterLocalAuthority); - - assert.strictEqual(await enterLocalAuthorityEventPage.getLocalAuthorityName(), swanseaLocalAuthority.name); - assert.strictEqual(await enterLocalAuthorityEventPage.getLocalAuthorityEmail(), swanseaLocalAuthority.email); -}); - -Scenario('Secondary local authority solicitor can see all local authorities but updates only his own @nightlyOnly', async ({I, caseViewPage, enterLocalAuthorityEventPage}) => { - - const hillingdonLocalAuthorityUpdates = { - pbaNumber: 'PBA1234567', - phone: '777777', - }; - - const hillingdonColleague = { - role: 'Solicitor', - fullName: 'Alex Brown', - email: 'alex@test.com', - notificationRecipient: 'Yes', - }; - - await setupScenario(I); - - await organisationAdminGrantAccess(config.hillingdonLocalAuthorityUserOne, SHARED_LA_ROLE); - - await I.navigateToCaseDetailsAs(config.hillingdonLocalAuthorityUserOne, caseId); - - await I.seeAvailableEvents([ - config.applicationActions.enterLocalAuthority, - config.administrationActions.uploadAdditionalApplications, - config.administrationActions.manageDocuments, - ]); - - await caseViewPage.goToNewActions(config.applicationActions.enterLocalAuthority); - - assert.strictEqual(await enterLocalAuthorityEventPage.getLocalAuthorityName(), hillingdonLocalAuthority.name); - assert.strictEqual(await enterLocalAuthorityEventPage.getLocalAuthorityEmail(), hillingdonLocalAuthority.email); - - await enterLocalAuthorityEventPage.enterDetails(hillingdonLocalAuthorityUpdates); - await I.goToNextPage(); - await enterLocalAuthorityEventPage.enterColleague(hillingdonColleague); - - await I.seeCheckAnswersAndCompleteEvent('Save and continue'); - //I.seeEventSubmissionConfirmation(config.applicationActions.enterLocalAuthority); - - caseViewPage.selectTab(caseViewPage.tabs.casePeople); - - I.seeInTab(['Local authority 1', 'Name'], swanseaLocalAuthority.name); - I.seeTagInTab(['Local authority 1', 'Designated local authority']); - I.seeInTab(['Local authority 1', 'Colleague 1', 'Full name'], 'Alex Brown'); - I.seeTagInTab(['Local authority 1', 'Colleague 1', 'Main contact']); - - I.seeInTab(['Local authority 2', 'Name'], hillingdonLocalAuthority.name); - I.seeInTab(['Local authority 2', 'Group email address'], hillingdonLocalAuthority.email); - I.seeInTab(['Local authority 2', 'PBA number'], hillingdonLocalAuthorityUpdates.pbaNumber); - I.seeInTab(['Local authority 2', 'Phone number'], hillingdonLocalAuthorityUpdates.phone); - I.dontSeeTagInTab(['Local authority 2', 'Designated local authority']); - - I.seeInTab(['Local authority 2', 'Colleague 1', 'Role'], hillingdonColleague.role); - I.seeInTab(['Local authority 2', 'Colleague 1', 'Full name'], hillingdonColleague.fullName); - I.seeInTab(['Local authority 2', 'Colleague 1', 'Email address'], hillingdonColleague.email); - I.seeInTab(['Local authority 2', 'Colleague 1', 'Send them case update notifications?'], hillingdonColleague.notificationRecipient); - I.seeTagInTab(['Local authority 2', 'Colleague 1', 'Main contact']); -}); - -Scenario('HMCTS admin removes secondary local authority @nightlyOnly', async ({I, caseViewPage, caseListPage, manageLocalAuthoritiesEventPage}) => { - - await setupScenario(I); - - await caseViewPage.goToNewActions(config.administrationActions.manageLocalAuthorities); - manageLocalAuthoritiesEventPage.selectRemoveLocalAuthority(); - - await I.goToNextPage(); - I.see(hillingdonLocalAuthority.name); - - await I.completeEvent('Save and continue'); - I.seeEventSubmissionConfirmation(config.administrationActions.manageLocalAuthorities); - - caseViewPage.selectTab(caseViewPage.tabs.casePeople); - - I.seeInTab(['Local authority 1', 'Name'], swanseaLocalAuthority.name); - I.seeTagInTab(['Local authority 1', 'Designated local authority']); - - I.dontSeeInTab(['Local authority 2', 'Name'], hillingdonLocalAuthority.name); - - await I.signIn(config.hillingdonLocalAuthorityUserOne); - - caseListPage.verifyCaseIsNotAccessible(caseId); -}); - -Scenario('HMCTS admin transfer case to new local authority @nightlyOnly', async ({I, caseViewPage, caseListPage, manageLocalAuthoritiesEventPage}) => { - - await setupScenario(I); - - await caseViewPage.goToNewActions(config.administrationActions.manageLocalAuthorities); - - manageLocalAuthoritiesEventPage.selectTransferLocalAuthority(); - await I.goToNextPage(); - - manageLocalAuthoritiesEventPage.selectLocalAuthorityToTransfer(hillingdonLocalAuthority.name); - await I.goToNextPage(); - - manageLocalAuthoritiesEventPage.fillSolicitorDetails(transferredLocalAuthoritySolicitor.name, transferredLocalAuthoritySolicitor.email); - await I.goToNextPage(); - - I.see(swanseaLocalAuthority.court); - manageLocalAuthoritiesEventPage.selectChangeCourt(); - manageLocalAuthoritiesEventPage.selectCourt(hillingdonLocalAuthority.court); - await I.completeEvent('Save and continue'); - - //I.seeEventSubmissionConfirmation(config.administrationActions.manageLocalAuthorities);//flaky - - caseViewPage.selectTab(caseViewPage.tabs.casePeople); - - I.seeInTab(['Local authority 1', 'Name'], hillingdonLocalAuthority.name); - I.seeTagInTab(['Local authority 1', 'Designated local authority']); - I.seeInTab(['Local authority 1', 'Colleague 1', 'Full name'], transferredLocalAuthoritySolicitor.name); - I.seeInTab(['Local authority 1', 'Colleague 1', 'Email address'], transferredLocalAuthoritySolicitor.email); - I.seeTagInTab(['Local authority 1', 'Colleague 1', 'Main contact']); - - I.dontSeeInTab(['Local authority 2', 'Name']); - - caseViewPage.selectTab(caseViewPage.tabs.summary); - I.seeInTab(['Court to issue'], hillingdonLocalAuthority.court); - - await I.signIn(config.swanseaLocalAuthorityUserOne); - - caseListPage.verifyCaseIsNotAccessible(caseId); -}); - -Scenario('HMCTS admin transfer case to secondary local authority @nightlyOnly', async ({I, caseViewPage, caseListPage, manageLocalAuthoritiesEventPage}) => { - - await setupScenario(I); - - await caseViewPage.goToNewActions(config.administrationActions.manageLocalAuthorities); - manageLocalAuthoritiesEventPage.selectAddLocalAuthority(); - await manageLocalAuthoritiesEventPage.selectLocalAuthority(swanseaLocalAuthority.name); - await I.goToNextPage(); - await I.completeEvent('Save and continue'); - I.seeEventSubmissionConfirmation(config.administrationActions.manageLocalAuthorities); - - await organisationAdminGrantAccess(config.swanseaLocalAuthorityUserOne, SHARED_LA_ROLE); - - await caseViewPage.goToNewActions(config.administrationActions.manageLocalAuthorities); - - manageLocalAuthoritiesEventPage.selectTransferLocalAuthority(); - await I.goToNextPage(); - - manageLocalAuthoritiesEventPage.selectSharedLocalAuthorityToTransfer(); - I.see(`The case will be transferred to ${swanseaLocalAuthority.name}`); - await I.goToNextPage(); - - manageLocalAuthoritiesEventPage.fillSolicitorDetails(transferredLocalAuthoritySolicitor.name, transferredLocalAuthoritySolicitor.email); - await I.goToNextPage(); - - I.see(hillingdonLocalAuthority.court); - manageLocalAuthoritiesEventPage.selectSameCourt(); - await I.completeEvent('Save and continue'); - - I.seeEventSubmissionConfirmation(config.administrationActions.manageLocalAuthorities); - - caseViewPage.selectTab(caseViewPage.tabs.casePeople); - - I.seeInTab(['Local authority 1', 'Name'], swanseaLocalAuthority.name); - I.seeTagInTab(['Local authority 1', 'Designated local authority']); - I.seeInTab(['Local authority 1', 'Colleague 1', 'Full name'], transferredLocalAuthoritySolicitor.name); - I.seeInTab(['Local authority 1', 'Colleague 1', 'Email address'], transferredLocalAuthoritySolicitor.email); - I.seeTagInTab(['Local authority 1', 'Colleague 1', 'Main contact']); - - I.dontSeeInTab(['Local authority 2', 'Name']); - - caseViewPage.selectTab(caseViewPage.tabs.summary); - I.seeInTab(['Court to issue'], hillingdonLocalAuthority.court); - - await I.signIn(config.hillingdonLocalAuthorityUserOne); - - caseListPage.verifyCaseIsNotAccessible(caseId); - - await I.signIn(config.swanseaLocalAuthorityUserOne); - - I.seeCaseInSearchResult(caseId); - -}); - -async function organisationAdminGrantAccess(user, role) { - await api.grantCaseAccess(caseId, user, role); -} diff --git a/playwright-e2e/pages/sign-in.ts b/playwright-e2e/pages/sign-in.ts index 21da50eabbe..cd080e1ecfc 100644 --- a/playwright-e2e/pages/sign-in.ts +++ b/playwright-e2e/pages/sign-in.ts @@ -4,7 +4,6 @@ import { urlConfig } from "../settings/urls"; import { BasePage } from "./base-page"; export class SignInPage extends BasePage { readonly page: Page; - readonly url: string; readonly mourl: string; readonly emailInputLocator: Locator; readonly passwordInputLocator: Locator; @@ -18,7 +17,6 @@ export class SignInPage extends BasePage { public constructor(page: Page) { super(page); this.page = page; - this.url = urlConfig.frontEndBaseURL; this.mourl = urlConfig.manageOrgURL; this.emailInputLocator = page.getByLabel("Email address"); this.passwordInputLocator = page.getByLabel("Password"); @@ -30,9 +28,8 @@ export class SignInPage extends BasePage { this.hideMessage = page.getByText('Hide message'); } - async visit(url: string = this.url) { - await this.page.goto(url); - + async visit() { + await this.page.goto(`${urlConfig.frontEndBaseURL}`); } async navigateToCaseDetails(caseNumber: string) { @@ -66,8 +63,4 @@ export class SignInPage extends BasePage { await this.signoutButton.click(); await expect(this.emailInputLocator).toBeVisible(); } - - async isLoggedInMO() { - await expect(this.page.getByRole('heading', { name: 'Organisation', exact: true })).toBeVisible(); - } } diff --git a/playwright-e2e/tests/manage-la-transfer-to-courts.spec.ts b/playwright-e2e/tests/manage-la-transfer-to-courts.spec.ts index 4dde12f276c..672375a45ef 100644 --- a/playwright-e2e/tests/manage-la-transfer-to-courts.spec.ts +++ b/playwright-e2e/tests/manage-la-transfer-to-courts.spec.ts @@ -4,10 +4,10 @@ import caseData from '../caseData/mandatorySubmissionFields.json' assert { type: import caseDataDemo from '../caseData/mandatorySubmissionFieldsDemo.json' assert {type: "json"}; import caseDataWithTwoLA from '../caseData/mandatorySubmissionWithTwoLAFields.json' assert { type: "json" }; import caseDataWithTwoLADemo from'../caseData/mandatorySubmissionWithTwoLAFieldsDemo.json' assert {type: "json"}; -import { CTSCTeamLeadUser, newSwanseaLocalAuthorityUserOne, HighCourtAdminUser, CTSCUser } from "../settings/user-credentials"; +import { CTSCTeamLeadUser, newSwanseaLocalAuthorityUserOne} from "../settings/user-credentials"; import { expect } from "@playwright/test"; -import {testConfig} from "../settings/test-config"; -import {urlConfig} from "../settings/urls"; +import { urlConfig } from "../settings/urls"; +import { runA11yCheck } from "../utils/accessibility"; test.describe('Manage LAs / Transfer to court', () => { const dateTime = new Date().toISOString(); @@ -18,83 +18,132 @@ test.describe('Manage LAs / Transfer to court', () => { }); test('CTSC transfer to a new court and submit case @xbrowser', - async ({ page, signInPage, manageLaTransferToCourts }) => { - caseName = 'CTSC transfers case' + dateTime.slice(0, 10); - await updateCase(caseName, caseNumber, caseData); - await signInPage.visit(); - await signInPage.login(CTSCTeamLeadUser.email, CTSCTeamLeadUser.password); - await signInPage.navigateToCaseDetails(caseNumber); - await manageLaTransferToCourts.gotoNextStep('Manage LAs / Transfer to court'); - await manageLaTransferToCourts.updateManageLaTransferToCourts(); - await manageLaTransferToCourts.tabNavigation('Summary'); - //reload to fix the flakiness of summary details are not updated until reload + async ({ page, signInPage, manageLaTransferToCourts }, testInfo) => { + + await test.step('Update Case Data', async() => { + caseName = 'CTSC transfers case' + dateTime.slice(0, 10); + await updateCase(caseName, caseNumber, caseData); + }); + + await test.step('Sign in and navigate', async() => { + await signInPage.visit(); + await signInPage.login(CTSCTeamLeadUser.email, CTSCTeamLeadUser.password); + await signInPage.navigateToCaseDetails(caseNumber); + }); + + await test.step('Update court info', async() => { + await manageLaTransferToCourts.gotoNextStep('Manage LAs / Transfer to court'); + await runA11yCheck(page, testInfo, 'transfer-step'); + await manageLaTransferToCourts.updateManageLaTransferToCourts(); + await manageLaTransferToCourts.tabNavigation('Summary'); + await runA11yCheck(page, testInfo, 'summary-tab'); + }); + await manageLaTransferToCourts.page.reload(); - await expect(page.getByText('Family Court sitting at Swansea')).toBeHidden(); - await expect(page.getByText('Family Court sitting at Central Family Court')).toBeVisible(); - }) + await test.step('Validate court info', async() => { + await expect(page.getByText('Family Court sitting at Swansea')).toBeHidden(); + await expect(page.getByText('Family Court sitting at Central Family Court')).toBeVisible(); + }); + }); + test('CTSC gives access to another local authority', - async ({ page, signInPage, manageLaTransferToCourts }) => { - caseName = 'CTSC gives access to another Local authority' + dateTime.slice(0, 10); - if(urlConfig.env.toUpperCase() === 'DEMO'){ - await updateCase(caseName, caseNumber, caseDataDemo); - } - else{ - await updateCase(caseName, caseNumber, caseData); - } - await signInPage.visit(); - await signInPage.login(CTSCTeamLeadUser.email, CTSCTeamLeadUser.password); - await signInPage.navigateToCaseDetails(caseNumber); - - await manageLaTransferToCourts.gotoNextStep('Manage LAs / Transfer to court'); - await manageLaTransferToCourts.updateCourtAccess(); - await manageLaTransferToCourts.tabNavigation('People in the case'); - await expect(page.getByText('Applicant 2')).toBeVisible(); - await expect(page.getByText('London Borough Hillingdon')).toBeVisible(); - - }) + async ({ page, signInPage, manageLaTransferToCourts }, testInfo) => { + + await test.step('Update Case Data', async () => { + caseName = 'CTSC gives access to another Local authority' + dateTime.slice(0, 10); + if (urlConfig.env.toUpperCase() === 'DEMO') { + await updateCase(caseName, caseNumber, caseDataDemo); + } else { + await updateCase(caseName, caseNumber, caseData); + } + }); + + + await test.step('Team leader sign in and navigate to case details', async () => { + await signInPage.visit(); + await signInPage.login(CTSCTeamLeadUser.email, CTSCTeamLeadUser.password); + await signInPage.navigateToCaseDetails(caseNumber); + await runA11yCheck(page, testInfo, 'case-details') + }); + + await test.step('CTSC gives access to another local authority', async () => { + await manageLaTransferToCourts.gotoNextStep('Manage LAs / Transfer to court'); + await manageLaTransferToCourts.updateCourtAccess(); + await manageLaTransferToCourts.tabNavigation('People in the case'); + await runA11yCheck(page, testInfo, 'people-in-case') + }); + + await test.step('Verify new authority has access', async () => { + await expect(page.getByText('Applicant 2')).toBeVisible(); + await expect(page.getByText('London Borough Hillingdon')).toBeVisible(); + }); + }); + test('CTSC removes access', - async ({ page, signInPage, manageLaTransferToCourts }) => { - caseName = 'CTSC removed access' + dateTime.slice(0, 10); - - if(urlConfig.env.toUpperCase() === 'DEMO'){ - await updateCase(caseName, caseNumber, caseDataWithTwoLADemo); - } - else{ - await updateCase(caseName, caseNumber, caseDataWithTwoLA); - } - - await signInPage.visit(); - await signInPage.login(CTSCTeamLeadUser.email, CTSCTeamLeadUser.password); - await signInPage.navigateToCaseDetails(caseNumber); - - await manageLaTransferToCourts.gotoNextStep('Manage LAs / Transfer to court'); - await manageLaTransferToCourts.updateRemoveAccess(); - await manageLaTransferToCourts.tabNavigation('People in the case'); - await expect(page.getByText('Applicant 2')).toBeHidden(); - await expect(page.getByText('London Borough Hillingdon')).toBeHidden(); - }) + async ({ page, signInPage, manageLaTransferToCourts }, testInfo) => { + await test.step('Update Case Data', async () => { + caseName = 'CTSC removed access' + dateTime.slice(0, 10); + if (urlConfig.env.toUpperCase() === 'DEMO') { + await updateCase(caseName, caseNumber, caseDataWithTwoLADemo); + } else { + await updateCase(caseName, caseNumber, caseDataWithTwoLA); + } + }); + + await test.step('Team leader sign in and navigate to case details', async () => { + await signInPage.visit(); + await signInPage.login(CTSCTeamLeadUser.email, CTSCTeamLeadUser.password); + await signInPage.navigateToCaseDetails(caseNumber); + await runA11yCheck(page, testInfo, 'case-details'); + }); + + await test.step('CTSC removes access', async () => { + await manageLaTransferToCourts.gotoNextStep('Manage LAs / Transfer to court'); + await manageLaTransferToCourts.updateRemoveAccess(); + await manageLaTransferToCourts.tabNavigation('People in the case'); + await runA11yCheck(page, testInfo, 'people-in-case'); + }); + + await test.step('Verify access has been removed', async () => { + await expect(page.getByText('Applicant 2')).toBeHidden(); + await expect(page.getByText('London Borough Hillingdon')).toBeHidden(); + }); + }); + test('CTSC tranfers to another local authority @xbrowser', - async ({ page, signInPage, manageLaTransferToCourts }) => { - caseName = 'CTSC transfers to another local authority' + dateTime.slice(0, 10); - if(urlConfig.env.toUpperCase() === 'DEMO'){ - await updateCase(caseName, caseNumber, caseDataDemo); - } - else{ - await updateCase(caseName, caseNumber, caseData); - } - await signInPage.visit(); - await signInPage.login(CTSCTeamLeadUser.email, CTSCTeamLeadUser.password); - await signInPage.navigateToCaseDetails(caseNumber); - - await manageLaTransferToCourts.gotoNextStep('Manage LAs / Transfer to court'); - await manageLaTransferToCourts.updateTranferToLa(); - await manageLaTransferToCourts.tabNavigation('People in the case'); - await expect(page.getByText('Swansea City Council')).toBeHidden(); - await expect(page.getByText('London Borough Hillingdon')).toBeVisible(); - await manageLaTransferToCourts.tabNavigation('Summary'); - await manageLaTransferToCourts.page.reload(); - await expect(page.getByText('Family Court sitting at Swansea')).toBeHidden(); - await expect(page.getByText('Family Court sitting at West London')).toBeVisible(); - }) + async ({ page, signInPage, manageLaTransferToCourts }, testInfo) => { + await test.step('Update Case Data', async () => { + caseName = 'CTSC transfers to another local authority' + dateTime.slice(0, 10); + if (urlConfig.env.toUpperCase() === 'DEMO') { + await updateCase(caseName, caseNumber, caseDataDemo); + } else { + await updateCase(caseName, caseNumber, caseData); + } + }); + + await test.step('Team leader sign in and navigate to case details', async () => { + await signInPage.visit(); + await signInPage.login(CTSCTeamLeadUser.email, CTSCTeamLeadUser.password); + await signInPage.navigateToCaseDetails(caseNumber); + await runA11yCheck(page, testInfo, 'applicant-details'); + }); + + await test.step('CTSC transfers case to another LA', async () => { + await manageLaTransferToCourts.gotoNextStep('Manage LAs / Transfer to court'); + await manageLaTransferToCourts.updateTranferToLa(); + await manageLaTransferToCourts.tabNavigation('People in the case'); + await runA11yCheck(page, testInfo, 'people-in-case'); + }); + + await test.step('Verify transfer of LA access and court update', async () => { + await expect(page.getByText('Swansea City Council')).toBeHidden(); + await expect(page.getByText('London Borough Hillingdon')).toBeVisible(); + await manageLaTransferToCourts.tabNavigation('Summary'); + await manageLaTransferToCourts.page.reload(); + await expect(page.getByText('Family Court sitting at Swansea')).toBeHidden(); + await expect(page.getByText('Family Court sitting at West London')).toBeVisible(); + await runA11yCheck(page, testInfo, 'applicant-details') + }); + }); }); diff --git a/playwright-e2e/utils/accessibility.ts b/playwright-e2e/utils/accessibility.ts new file mode 100644 index 00000000000..291c1e1a75c --- /dev/null +++ b/playwright-e2e/utils/accessibility.ts @@ -0,0 +1,11 @@ +import AxeBuilder from "@axe-core/playwright"; +import { TestInfo, Page } from "@playwright/test"; + +export async function runA11yCheck(page: Page, testInfo: TestInfo, label: string) { + const results = await new AxeBuilder({ page }).analyze(); + + await testInfo.attach(`a11y-${label}`, { + body: JSON.stringify(results, null, 2), + contentType: 'application/json' + }); +}