diff --git a/src/ui-spa/integration-tests/pages/caseDetailsPage.ts b/src/ui-spa/integration-tests/pages/caseDetailsPage.ts
index e72e01c9..cdfaef5b 100644
--- a/src/ui-spa/integration-tests/pages/caseDetailsPage.ts
+++ b/src/ui-spa/integration-tests/pages/caseDetailsPage.ts
@@ -13,7 +13,7 @@ export class CaseDetailsPage {
await expect(this.page).toHaveURL(this.route);
}
- async verifyPageElements() {
+ async verifyPageElements(isCaseSensitive: boolean = false) {
await expect(this.page).toHaveTitle(/Case Details - Register A Case/);
await expect(this.page.locator("h1")).toHaveText("Case details");
await expect(this.page.locator("legend").first()).toHaveText(
@@ -27,19 +27,26 @@ export class CaseDetailsPage {
await expect(this.page.locator("label").nth(3)).toHaveText(
"Year reference",
);
- await expect(this.page.locator("label").nth(4)).toHaveText(
- "What is the registering unit?",
- );
- await expect(this.page.locator("label").nth(5)).toHaveText(
- "What is the witness care unit (WCU)?",
- );
+
+ if (!isCaseSensitive) {
+ await expect(this.page.locator("label").nth(4)).toHaveText(
+ "What is the registering unit?",
+ );
+ await expect(this.page.locator("label").nth(5)).toHaveText(
+ "What is the witness care unit (WCU)?",
+ );
+ } else {
+ await expect(this.page.locator("label").nth(4)).toHaveText(
+ "What is the witness care unit (WCU)?",
+ );
+ }
await expect(this.page.getByTestId("urn-year-reference-text")).toHaveValue(
"26",
);
await this.verifyCancelLink();
}
- async errorValidations() {
+ async errorValidations(isCaseSensitive: boolean = false) {
await this.enterUrnYearReference("");
await this.verifyErrorSummaryClear();
this.saveAndContinue();
@@ -51,12 +58,14 @@ export class CaseDetailsPage {
await expect(this.page.getByTestId("urn-error-text-link")).toHaveText(
"Enter the URN",
);
- await expect(
- this.page.getByTestId("registering-unit-error-text-link"),
- ).toBeVisible();
- await expect(
- this.page.getByTestId("registering-unit-error-text-link"),
- ).toHaveText("Select the registering unit");
+ if (!isCaseSensitive) {
+ await expect(
+ this.page.getByTestId("registering-unit-error-text-link"),
+ ).toBeVisible();
+ await expect(
+ this.page.getByTestId("registering-unit-error-text-link"),
+ ).toHaveText("Select the registering unit");
+ }
await expect(
this.page.getByTestId("witness-care-unit-error-text-link"),
).toBeVisible();
@@ -87,17 +96,20 @@ export class CaseDetailsPage {
await expect(
this.page.getByTestId("urn-error-text-link"),
).not.toBeVisible();
-
- await this.page.getByTestId("registering-unit-error-text-link").click();
- await expect(this.page.locator("#registering-unit-text")).toBeFocused();
- await this.enterRegisteringUnit("abc");
- await this.page.getByRole("button", { name: "Save and continue" }).click();
- await expect(
- this.page.getByTestId("registering-unit-error-text-link"),
- ).toHaveText("Select a valid registering unit");
- await this.page.getByTestId("registering-unit-error-text-link").click();
- await expect(this.page.locator("#registering-unit-text")).toBeFocused();
- await this.enterRegisteringUnit("NORTHERN CJU (Peterborough)");
+ if (!isCaseSensitive) {
+ await this.page.getByTestId("registering-unit-error-text-link").click();
+ await expect(this.page.locator("#registering-unit-text")).toBeFocused();
+ await this.enterRegisteringUnit("abc");
+ await this.page
+ .getByRole("button", { name: "Save and continue" })
+ .click();
+ await expect(
+ this.page.getByTestId("registering-unit-error-text-link"),
+ ).toHaveText("Select a valid registering unit");
+ await this.page.getByTestId("registering-unit-error-text-link").click();
+ await expect(this.page.locator("#registering-unit-text")).toBeFocused();
+ await this.enterRegisteringUnit("NORTHERN CJU (Peterborough)");
+ }
await this.page.getByRole("button", { name: "Save and continue" }).click();
await expect(
this.page.getByTestId("registering-unit-error-text-link"),
diff --git a/src/ui-spa/integration-tests/pages/caseRegistrationSummaryPage.ts b/src/ui-spa/integration-tests/pages/caseRegistrationSummaryPage.ts
index b6a5145d..b45b8085 100644
--- a/src/ui-spa/integration-tests/pages/caseRegistrationSummaryPage.ts
+++ b/src/ui-spa/integration-tests/pages/caseRegistrationSummaryPage.ts
@@ -49,13 +49,16 @@ export class CaseRegistrationSummaryPage {
await this.verifyCancelLink();
}
- async verifyCaseDetailsElements(values: {
- area: string;
- urn: string;
- registeringUnit: string;
- wcu: string;
- operationName: string;
- }) {
+ async verifyCaseDetailsElements(
+ values: {
+ area: string;
+ urn: string;
+ registeringUnit: string;
+ wcu: string;
+ operationName: string;
+ },
+ isCaseSensitive: boolean = false,
+ ) {
const caseDetailWrapperElement = this.page.getByTestId(
"case-details-summary",
);
@@ -65,15 +68,24 @@ export class CaseRegistrationSummaryPage {
const rows = caseDetailWrapperElement.locator(".govuk-summary-list__row");
await expect(rows.nth(0).locator("dt").nth(0)).toHaveText("Area");
await expect(rows.nth(0).locator("dd").nth(0)).toHaveText(values.area);
- const areaChangeLink = rows
- .nth(0)
- .locator("dd")
- .nth(1)
- .getByRole("link", { name: "Change" });
- await expect(areaChangeLink).toHaveAttribute(
- "href",
- "/case-registration/areas",
- );
+ if (isCaseSensitive) {
+ const actions = rows
+ .nth(0)
+ .locator("dd")
+ .nth(1)
+ .getByRole("link", { name: "Change" });
+ expect(actions).toHaveCount(0);
+ } else {
+ const areaChangeLink = rows
+ .nth(0)
+ .locator("dd")
+ .nth(1)
+ .getByRole("link", { name: "Change" });
+ await expect(areaChangeLink).toHaveAttribute(
+ "href",
+ "/case-registration/areas",
+ );
+ }
await expect(rows.nth(1).locator("dt").nth(0)).toHaveText("URN");
await expect(rows.nth(1).locator("dd").nth(0)).toHaveText(values.urn);
@@ -93,15 +105,25 @@ export class CaseRegistrationSummaryPage {
await expect(rows.nth(2).locator("dd").nth(0)).toHaveText(
values.registeringUnit,
);
- const registeringUnitChangeLink = rows
- .nth(2)
- .locator("dd")
- .nth(1)
- .getByRole("link", { name: "Change" });
- await expect(registeringUnitChangeLink).toHaveAttribute(
- "href",
- "/case-registration/case-details",
- );
+
+ if (isCaseSensitive) {
+ const actions = rows
+ .nth(0)
+ .locator("dd")
+ .nth(1)
+ .getByRole("link", { name: "Change" });
+ expect(actions).toHaveCount(0);
+ } else {
+ const registeringUnitChangeLink = rows
+ .nth(2)
+ .locator("dd")
+ .nth(1)
+ .getByRole("link", { name: "Change" });
+ await expect(registeringUnitChangeLink).toHaveAttribute(
+ "href",
+ "/case-registration/case-details",
+ );
+ }
await expect(rows.nth(3).locator("dt").nth(0)).toHaveText("WCU");
await expect(rows.nth(3).locator("dd").nth(0)).toHaveText(values.wcu);
diff --git a/src/ui-spa/integration-tests/sensitive-case-non-suspect-journery.spec.ts b/src/ui-spa/integration-tests/sensitive-case-non-suspect-journery.spec.ts
new file mode 100644
index 00000000..83b78bc7
--- /dev/null
+++ b/src/ui-spa/integration-tests/sensitive-case-non-suspect-journery.spec.ts
@@ -0,0 +1,201 @@
+import { delay, HttpResponse, http } from "msw";
+import { expect, test } from "./utils/test";
+import { CaseRegistrationHomePage } from "./pages/caseRegistrationHomePage";
+import { CaseDetailsPage } from "./pages/caseDetailsPage";
+import { CaseMonitoringPage } from "./pages/caseMonitoringPage";
+import { CaseAssigneePage } from "./pages/caseAssigneePage";
+import { CaseRegistrationSummaryPage } from "./pages/caseRegistrationSummaryPage";
+import { CaseComplexityPage } from "./pages/caseComplexityPage";
+import { CaseRegistrationConfirmationPage } from "./pages/caseRegistrationConfirmationPage";
+import { caseAreasAndRegisteringUnitsSensitiveCasePlaywright } from "../src/mocks/data/caseAreasAndRegisteringUnits.playwright";
+
+test("Should successfully complete a sensitive case non suspect journey", async ({
+ page,
+ worker,
+}) => {
+ await worker.use(
+ http.get("https://mocked-out-api/api/v1/units", async () => {
+ await delay(100);
+ return HttpResponse.json(
+ caseAreasAndRegisteringUnitsSensitiveCasePlaywright,
+ );
+ }),
+ );
+ await page.goto("http://localhost:5173");
+ const caseRegistrationHomePage = new CaseRegistrationHomePage(page);
+ await caseRegistrationHomePage.verifyUrl();
+ await caseRegistrationHomePage.verifyPageElements();
+ await caseRegistrationHomePage.errorValidations();
+ await caseRegistrationHomePage.addOperationName("thunderstruck");
+ await caseRegistrationHomePage.addNoSuspect();
+ await caseRegistrationHomePage.saveAndContinue();
+ await caseRegistrationHomePage.verifyErrorSummaryClear();
+
+ const caseDetailsPage = new CaseDetailsPage(page);
+ await caseDetailsPage.verifyUrl();
+
+ await caseDetailsPage.verifyBackLink("/case-registration");
+ await caseDetailsPage.backLinkClick();
+ await caseRegistrationHomePage.verifyUrl();
+ await caseRegistrationHomePage.saveAndContinue();
+ await delay(500);
+ await caseDetailsPage.verifyUrl();
+ await caseDetailsPage.verifyPageElements(true);
+ await caseDetailsPage.errorValidations(true);
+ await caseDetailsPage.enterUrnPoliceForce("12");
+ await caseDetailsPage.enterUrnPoliceUnit("21");
+ await caseDetailsPage.enterUrnUniqueReference("12345");
+ await caseDetailsPage.enterUrnYearReference("26");
+ await caseDetailsPage.enterWitnessCareUnit(
+ "Cambridgeshire Non Operational WCU",
+ );
+ await caseDetailsPage.saveAndContinue();
+ await caseDetailsPage.verifyErrorSummaryClear();
+
+ const caseMonitoringPage = new CaseMonitoringPage(page);
+ await caseMonitoringPage.verifyUrl();
+ await caseMonitoringPage.verifyBackLink("/case-registration/case-details");
+ await caseMonitoringPage.backLinkClick();
+ await caseDetailsPage.verifyUrl();
+ await caseDetailsPage.saveAndContinue();
+ await caseMonitoringPage.verifyUrl();
+ await caseMonitoringPage.verifyPageElements(45);
+ await caseMonitoringPage.verifyPreChargeCheckboxChecked();
+ await caseMonitoringPage.selectMonitoringCode("Asset Recovery");
+ await caseMonitoringPage.saveAndContinue();
+ await caseMonitoringPage.verifyErrorSummaryClear();
+
+ const caseAssigneePage = new CaseAssigneePage(page);
+ await caseAssigneePage.verifyUrl();
+ await caseAssigneePage.verifyBackLink(
+ "/case-registration/case-monitoring-codes",
+ );
+ await caseAssigneePage.backLinkClick();
+ await caseMonitoringPage.verifyUrl();
+ await caseMonitoringPage.saveAndContinue();
+ await caseAssigneePage.verifyUrl();
+ await caseAssigneePage.verifyPageElements();
+ await caseAssigneePage.errorValidations();
+ await caseAssigneePage.addProsecutorYes();
+ await caseAssigneePage.addInvestigatorYes();
+ await caseAssigneePage.enterProsecutorName("Prosecutor A");
+ await caseAssigneePage.enterCaseworkerName("Caseworker A");
+ await caseAssigneePage.addInvestigatorFirstName("Investigator F");
+ await caseAssigneePage.addInvestigatorLastName("Investigator L");
+ await caseAssigneePage.addInvestigatorShoulderNumber("12345");
+ await caseAssigneePage.saveAndContinue();
+ await expect(page).toHaveURL(
+ "http://localhost:5173/case-registration/case-summary",
+ );
+
+ const caseRegistrationSummaryPage = new CaseRegistrationSummaryPage(page);
+ await caseRegistrationSummaryPage.verifyUrl();
+ await caseRegistrationSummaryPage.verifyBackLink(
+ "/case-registration/case-assignee",
+ );
+ await caseRegistrationSummaryPage.backLinkClick();
+ await caseAssigneePage.verifyUrl();
+ await caseAssigneePage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+ await caseRegistrationSummaryPage.verifyPageElements();
+ await caseRegistrationSummaryPage.verifyCaseDetailsElements(
+ {
+ area: "CAMBRIDGESHIRE",
+ urn: "12211234526",
+ registeringUnit: "SOUTHERN CJU (Cambridge)",
+ wcu: "Cambridgeshire Non Operational WCU",
+ operationName: "thunderstruck",
+ },
+ true,
+ );
+ await caseRegistrationSummaryPage.verifyComplexityAndMonitoringCodesElements({
+ complexity: "Basic",
+ monitoringCodes: ["Asset Recovery", "Pre-Charge Decision"],
+ });
+ await caseRegistrationSummaryPage.verifyWorkingOnTheCaseElements({
+ prosecutor: "Prosecutor A",
+ caseworker: "Caseworker A",
+ investigator: "InvestigatorL, InvestigatorF",
+ shoulderNumber: "12345",
+ policeUnit: "Not entered",
+ });
+
+ await caseRegistrationSummaryPage.changeOperationNameLinkClick();
+ await caseRegistrationHomePage.verifyUrl();
+ await caseRegistrationHomePage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ await caseRegistrationSummaryPage.changeUrnLinkClick();
+ await caseDetailsPage.verifyUrl();
+ await caseDetailsPage.verifyBackLink("/case-registration/case-summary");
+ await caseDetailsPage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ await caseRegistrationSummaryPage.changeWcuLinkClick();
+ await caseDetailsPage.verifyUrl();
+ await caseDetailsPage.verifyBackLink("/case-registration/case-summary");
+ await caseDetailsPage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ await caseRegistrationSummaryPage.changeMonitoringCodesLinkClick();
+ await caseMonitoringPage.verifyUrl();
+ await caseMonitoringPage.verifyBackLink("/case-registration/case-summary");
+ await caseMonitoringPage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ const caseComplexityPage = new CaseComplexityPage(page);
+ await caseRegistrationSummaryPage.changeCaseComplexityLinkClick();
+ await caseComplexityPage.verifyUrl();
+ await caseComplexityPage.verifyBackLink("/case-registration/case-summary");
+ await caseComplexityPage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ await caseRegistrationSummaryPage.changeCaseInvestigatorLinkClick();
+ await caseAssigneePage.verifyUrl();
+ await caseAssigneePage.verifyBackLink("/case-registration/case-summary");
+ await caseAssigneePage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ await caseRegistrationSummaryPage.changeShoulderNumberLinkClick();
+ await caseAssigneePage.verifyUrl();
+ await caseAssigneePage.verifyBackLink("/case-registration/case-summary");
+ await caseAssigneePage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ await caseRegistrationSummaryPage.changeProsecutorLinkClick();
+ await caseAssigneePage.verifyUrl();
+ await caseAssigneePage.verifyBackLink("/case-registration/case-summary");
+ await caseAssigneePage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ await caseRegistrationSummaryPage.changeCaseworkerLinkClick();
+ await caseAssigneePage.verifyUrl();
+ await caseAssigneePage.verifyBackLink("/case-registration/case-summary");
+ await caseAssigneePage.saveAndContinue();
+ await caseRegistrationSummaryPage.verifyUrl();
+
+ await worker.use(
+ http.get("https://mocked-out-api/api/v1/urns/:urn/exists", async () => {
+ await delay(2000);
+ return HttpResponse.json(true);
+ }),
+ );
+ await caseRegistrationSummaryPage.clickCreateCaseButton();
+ await caseRegistrationSummaryPage.verifyFormSubmittingStatus();
+ await caseRegistrationSummaryPage.verifyUrl();
+ await caseRegistrationSummaryPage.errorValidations();
+ await caseRegistrationSummaryPage.verifyFormNonSubmittingStatus();
+ await worker.use(
+ http.get("https://mocked-out-api/api/v1/urns/:urn/exists", async () => {
+ await delay(100);
+ return HttpResponse.json(false);
+ }),
+ );
+ await caseRegistrationSummaryPage.clickCreateCaseButton();
+ await caseRegistrationSummaryPage.verifyErrorSummaryCleared();
+ const caseRegistrationConfirmationPage = new CaseRegistrationConfirmationPage(
+ page,
+ );
+ await caseRegistrationConfirmationPage.verifyUrl();
+ await caseRegistrationConfirmationPage.verifyPageElements("12211234526");
+});
diff --git a/src/ui-spa/src/components/case-registration/case-details-page/index.tsx b/src/ui-spa/src/components/case-registration/case-details-page/index.tsx
index 655f7268..056a4b72 100644
--- a/src/ui-spa/src/components/case-registration/case-details-page/index.tsx
+++ b/src/ui-spa/src/components/case-registration/case-details-page/index.tsx
@@ -345,7 +345,8 @@ const CaseDetailsPage = () => {
) as HTMLInputElement | null;
const registeringUnitInputValue = registeringUnitInput?.value ?? "";
if (
- formData.registeringUnitText?.description !== registeringUnitInputValue
+ formData.registeringUnitText?.description !== registeringUnitInputValue &&
+ !isAreaSensitive
) {
const { id, description } = getSelectedUnit(
registeringUnits,
diff --git a/src/ui-spa/src/components/case-registration/case-summary-page/index.tsx b/src/ui-spa/src/components/case-registration/case-summary-page/index.tsx
index a80c6e3e..3561a914 100644
--- a/src/ui-spa/src/components/case-registration/case-summary-page/index.tsx
+++ b/src/ui-spa/src/components/case-registration/case-summary-page/index.tsx
@@ -23,6 +23,7 @@ import { getPoliceUnit } from "../../../common/utils/getPoliceUnit";
import SuspectSummary from "../suspect-summary/SuspectSummary";
import { useNavigate } from "react-router-dom";
import PageContentWrapper from "../../common/PageContentWrapper";
+import { useIsAreaSensitive } from "../../../common/hooks/useIsAreaSensitive";
import styles from "./index.module.scss";
const CaseSummaryPage = () => {
@@ -39,6 +40,7 @@ const CaseSummaryPage = () => {
const { state, dispatch } = useContext(CaseRegistrationFormContext);
const navigate = useNavigate();
const { chargesCount } = useChargesCount(state.formData.suspects);
+ const isAreaSensitive = useIsAreaSensitive();
const submitCaseRegistrationMutation = useMutation({
mutationFn: submitCaseRegistration,
@@ -171,8 +173,15 @@ const CaseSummaryPage = () => {
navigate,
state.formData,
disableSummaryActions,
+ !!isAreaSensitive,
),
- [dispatch, navigate, state.formData, disableSummaryActions],
+ [
+ dispatch,
+ navigate,
+ state.formData,
+ disableSummaryActions,
+ isAreaSensitive,
+ ],
);
const caseFirstHearingSummaryListRows = useMemo(
diff --git a/src/ui-spa/src/components/case-registration/case-summary-page/utils/getSummaryListRows.test.tsx b/src/ui-spa/src/components/case-registration/case-summary-page/utils/getSummaryListRows.test.tsx
index 283970b1..f2787f65 100644
--- a/src/ui-spa/src/components/case-registration/case-summary-page/utils/getSummaryListRows.test.tsx
+++ b/src/ui-spa/src/components/case-registration/case-summary-page/utils/getSummaryListRows.test.tsx
@@ -128,6 +128,7 @@ describe("getCaseDetailsSummaryListRows", () => {
navigate,
modifiedFormData,
false,
+ false,
);
const expectedValues = [
@@ -200,6 +201,7 @@ describe("getCaseDetailsSummaryListRows", () => {
navigate,
modifiedFormData,
false,
+ false,
);
const expectedValues = [
@@ -254,11 +256,55 @@ describe("getCaseDetailsSummaryListRows", () => {
navigate,
formData,
true,
+ false,
);
for (const r of rows) {
expect(r.actions?.items).toEqual([]);
}
});
+ it("Should return correct row values for the sensitive cases, it should not show the change links for area and registering units (empty actions)", () => {
+ const dispatch = vi.fn();
+ const navigate = vi.fn();
+
+ const caseDetailsValue = {
+ operationNameRadio: "yes",
+ suspectDetailsRadio: "yes",
+ operationNameText: "op_1",
+ areaOrDivisionText: { id: 1, description: "area_1" },
+ urnPoliceForceText: "11",
+ urnPoliceUnitText: "12",
+ urnUniqueReferenceText: "0001",
+ urnYearReferenceText: "26",
+ registeringUnitText: { id: 2, description: "ru_1" },
+ witnessCareUnitText: { id: 3, description: "wcu_1" },
+ suspects: [
+ { id: 1, name: "Suspect 1" },
+ { id: 2, name: "Suspect 2" },
+ ] as unknown,
+ };
+
+ const modifiedFormData = {
+ ...formData,
+ ...caseDetailsValue,
+ } as CaseRegistrationFormData;
+
+ const rows = getCaseDetailsSummaryListRows(
+ dispatch,
+ navigate,
+ modifiedFormData,
+ false,
+ true,
+ );
+
+ expect(rows.length).toBeGreaterThanOrEqual(6);
+ expect(rows[0].key.children).toEqual(Area);
+ expect(rows[0].value.children).toEqual(area_1);
+ expect(rows[0].actions?.items).toEqual([]);
+
+ expect(rows[2].key.children).toEqual(Registering unit);
+ expect(rows[2].value.children).toEqual(ru_1);
+ expect(rows[2].actions?.items).toEqual([]);
+ });
});
describe("getFirstHearingSummaryRows", () => {
it("renders first hearing date and court location with change actions", () => {
diff --git a/src/ui-spa/src/components/case-registration/case-summary-page/utils/getSummaryListRows.tsx b/src/ui-spa/src/components/case-registration/case-summary-page/utils/getSummaryListRows.tsx
index f06f581b..c358b344 100644
--- a/src/ui-spa/src/components/case-registration/case-summary-page/utils/getSummaryListRows.tsx
+++ b/src/ui-spa/src/components/case-registration/case-summary-page/utils/getSummaryListRows.tsx
@@ -12,6 +12,7 @@ export const getCaseDetailsSummaryListRows = (
navigate: NavigateFunction,
formData: CaseRegistrationFormData,
hideActions: boolean,
+ isAreaSensitive: boolean,
) => {
const handleAddChangeClick = (
event: React.MouseEvent,
@@ -56,18 +57,19 @@ export const getCaseDetailsSummaryListRows = (
children: {formData.areaOrDivisionText?.description},
},
actions: {
- items: hideActions
- ? []
- : [
- {
- "data-testid": "change-area-link",
- children: Change,
- to: "/case-registration/areas",
- visuallyHiddenText: "Case Area",
- onClick: (event: React.MouseEvent) =>
- handleAddChangeClick(event, "/case-registration/areas"),
- },
- ],
+ items:
+ hideActions || isAreaSensitive
+ ? []
+ : [
+ {
+ "data-testid": "change-area-link",
+ children: Change,
+ to: "/case-registration/areas",
+ visuallyHiddenText: "Case Area",
+ onClick: (event: React.MouseEvent) =>
+ handleAddChangeClick(event, "/case-registration/areas"),
+ },
+ ],
},
},
@@ -101,21 +103,22 @@ export const getCaseDetailsSummaryListRows = (
children: {formData.registeringUnitText?.description},
},
actions: {
- items: hideActions
- ? []
- : [
- {
- "data-testid": "change-registering-unit-link",
- children: Change,
- to: "/case-registration/case-details",
- visuallyHiddenText: "Registering Unit",
- onClick: (event: React.MouseEvent) =>
- handleAddChangeClick(
- event,
- "/case-registration/case-details",
- ),
- },
- ],
+ items:
+ hideActions || isAreaSensitive
+ ? []
+ : [
+ {
+ "data-testid": "change-registering-unit-link",
+ children: Change,
+ to: "/case-registration/case-details",
+ visuallyHiddenText: "Registering Unit",
+ onClick: (event: React.MouseEvent) =>
+ handleAddChangeClick(
+ event,
+ "/case-registration/case-details",
+ ),
+ },
+ ],
},
},
{
diff --git a/src/ui-spa/src/components/case-registration/index.tsx b/src/ui-spa/src/components/case-registration/index.tsx
index ef4d7417..e0c6ab1c 100644
--- a/src/ui-spa/src/components/case-registration/index.tsx
+++ b/src/ui-spa/src/components/case-registration/index.tsx
@@ -182,15 +182,31 @@ const CaseRegistrationPage = () => {
},
});
+ let defaultPayload: {
+ areaOrDivisionText: { id: number; description: string };
+ registeringUnitText?: { id: number; description: string };
+ } = {
+ areaOrDivisionText: {
+ id: areasData.homeUnit.areaId,
+ description: areasData.homeUnit.areaDescription,
+ },
+ };
+ if (areasData?.homeUnit?.areaIsSensitive) {
+ defaultPayload = {
+ ...defaultPayload,
+ registeringUnitText: {
+ id: areasData.homeUnit.id,
+ description: areasData.homeUnit.description,
+ },
+ };
+ }
+
if (!state.formData.areaOrDivisionText.id && areasData?.homeUnit) {
dispatch({
type: "SET_FIELDS",
payload: {
data: {
- areaOrDivisionText: {
- id: areasData.homeUnit.areaId,
- description: areasData.homeUnit.areaDescription,
- },
+ ...defaultPayload,
},
},
});
diff --git a/src/ui-spa/src/mocks/data/caseAreasAndRegisteringUnits.playwright.ts b/src/ui-spa/src/mocks/data/caseAreasAndRegisteringUnits.playwright.ts
index d5f46815..fc1d28a8 100644
--- a/src/ui-spa/src/mocks/data/caseAreasAndRegisteringUnits.playwright.ts
+++ b/src/ui-spa/src/mocks/data/caseAreasAndRegisteringUnits.playwright.ts
@@ -86,3 +86,14 @@ export const caseAreasAndRegisteringUnitsPlaywright = {
description: "SOUTHERN CJU (Cambridge)",
},
};
+
+export const caseAreasAndRegisteringUnitsSensitiveCasePlaywright = {
+ ...caseAreasAndRegisteringUnitsPlaywright,
+ homeUnit: {
+ areaId: 1008,
+ areaDescription: "CAMBRIDGESHIRE",
+ areaIsSensitive: true,
+ id: 2033,
+ description: "SOUTHERN CJU (Cambridge)",
+ },
+};