diff --git a/charts/prl-citizen-frontend/values.preview.template.yaml b/charts/prl-citizen-frontend/values.preview.template.yaml index 5c7b2ce263..a90aec4140 100644 --- a/charts/prl-citizen-frontend/values.preview.template.yaml +++ b/charts/prl-citizen-frontend/values.preview.template.yaml @@ -17,12 +17,13 @@ nodejs: SERVICE_AUTH_PROVIDER_URL: 'http://rpe-service-auth-provider-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal' IDAM_WEB_URL: 'https://idam-web-public.{{ .Values.global.environment }}.platform.hmcts.net/login' IDAM_API_URL: 'https://idam-api.{{ .Values.global.environment }}.platform.hmcts.net/o/token' - CCD_URL: 'https://ccd-data-store-api-prl-ccd-definitions-pr-2429.preview.platform.hmcts.net' EQUALITY_URL: 'https://pcq.aat.platform.hmcts.net' - DOCUMENT_MANAGEMENT_URL: 'https://ccd-case-document-am-api-prl-ccd-definitions-pr-2429.preview.platform.hmcts.net' - COS_URL: 'https://prl-cos-pr-2740.preview.platform.hmcts.net' + CCD_URL: 'http://ccd-data-store-api-aat.service.core-compute-aat.internal' + DOCUMENT_MANAGEMENT_URL: 'http://ccd-case-document-am-api-aat.service.core-compute-aat.internal' + COS_URL: 'http://prl-cos-aat.service.core-compute-aat.internal' REASONABLE_ADJUSTMENTS: 'https://cui-ra.aat.platform.hmcts.net' FACT_URL: 'http://fact-api-aat.service.core-compute-aat.internal' + REASONABLE_ADJUSTMENTS: 'https://cui-ra.{{ .Values.global.environment }}.platform.hmcts.net' REDIS_HOST: 'prl-citizen-frontend-secondary-redis-{{ .Values.global.environment }}.redis.cache.windows.net' LAUNCH_DARKLY_OFFLINE_MODE: false C100_REBUILD_FLAG: false diff --git a/config/development.yaml b/config/development.yaml index 9c886b3a89..8d58ba015d 100644 --- a/config/development.yaml +++ b/config/development.yaml @@ -21,11 +21,11 @@ services: citizen: uploadDocsEmail: UPLOAD_DOCUMENTS_EMAIL case: - url: 'https://ccd-data-store-api-prl-ccd-definitions-pr-2429.preview.platform.hmcts.net' + url: 'http://ccd-data-store-api-aat.service.core-compute-aat.internal' cos: - url: 'https://prl-cos-pr-2740.preview.platform.hmcts.net' + url: 'http://prl-cos-aat.service.core-compute-aat.internal' documentManagement: - url: 'https://ccd-case-document-am-api-prl-ccd-definitions-pr-2429.preview.platform.hmcts.net' + url: 'http://ccd-case-document-am-api-aat.service.core-compute-aat.internal' fact: url: 'http://fact-api-aat.service.core-compute-aat.internal' reasonableAdjustments: diff --git a/src/main/app/case/case.ts b/src/main/app/case/case.ts index 6ff09fea1b..3874f3a3cd 100644 --- a/src/main/app/case/case.ts +++ b/src/main/app/case/case.ts @@ -793,6 +793,7 @@ export interface CaseWithId extends Case { legalRepresentativeForProceedings?: YesOrNo; legalRepresentativeForApplication?: YesOrNo; paymentData?: PaymentResponse; + dynamicForm?: Record; } export enum Checkbox { diff --git a/src/main/assets/scss/main.scss b/src/main/assets/scss/main.scss index 686e763abd..9509093e5f 100644 --- a/src/main/assets/scss/main.scss +++ b/src/main/assets/scss/main.scss @@ -224,9 +224,18 @@ section { padding-left: 3rem; padding-right: 3rem; } + +li.list-style--none{ + list-style-type: none; +} + @media screen and (min-width: 640px) { .app-button--l { font-size: 24px; font-size: 1.5rem; } +} + +.border-bottom--none{ + border-bottom: none !important; } \ No newline at end of file diff --git a/src/main/modules/properties-volume/index.ts b/src/main/modules/properties-volume/index.ts index 1ecfba1c54..f748d8013e 100644 --- a/src/main/modules/properties-volume/index.ts +++ b/src/main/modules/properties-volume/index.ts @@ -45,7 +45,7 @@ export class PropertiesVolume { * Load a secret from the aat vault using azure cli */ private setLocalSecret(secret: string, toPath: string): void { - const result = execSync(`az keyvault secret show --vault-name prl-aat -o tsv --query value --name ${secret}`); + const result = execSync(`az keyvault secret show --vault-name prl-ithc -o tsv --query value --name ${secret}`); set(config, toPath, result.toString().replace('\n', '')); } } diff --git a/src/main/steps/accessibility-statement/template.njk b/src/main/steps/accessibility-statement/template.njk index e1e53367e3..4f0c38de81 100644 --- a/src/main/steps/accessibility-statement/template.njk +++ b/src/main/steps/accessibility-statement/template.njk @@ -92,7 +92,7 @@

{{ dacTestingProcedure3 }}

{{ dacTestingProcedureDescription3 }}

-

{{ contactHelp }}

+

{{ contactHelp }}

{{ email | safe }}

{{ accessibilityPhoneNumber }}

{% endblock %} diff --git a/src/main/steps/applicant/all-documents/start/content.test.ts b/src/main/steps/applicant/all-documents/start/content.test.ts deleted file mode 100644 index f19d5c3e4f..0000000000 --- a/src/main/steps/applicant/all-documents/start/content.test.ts +++ /dev/null @@ -1,80 +0,0 @@ -import languageAssertions from '../../../../../test/unit/utils/languageAssertions'; -import { FormContent, FormFields, FormOptions } from '../../../../app/form/Form'; -import { CommonContent } from '../../../common/common.content'; - -import { generateContent } from './content'; - -const enContent = { - section: 'Keeping your contact details private', - title: 'Do the other people named in this application (the applicants) know any of your contact details?', - one: 'Yes', - two: 'No', - three: "I don't know", - continue: 'Continue', - errors: { - detailsKnown: { - required: 'Enter your details known', - }, - }, -}; - -const cyContent = { - section: 'Cadw eich manylion cyswllt yn breifat', - title: 'A yw’r unigolyn a wnaeth gais i’r llys (y ceisydd) yn gwybod unrhyw rai o’ch manylion cyswllt?', - one: 'Ydy', - two: 'Nac ydy', - three: 'Nid wyf yn gwybod', - continue: 'Parhau', - errors: { - detailsKnown: { - required: 'Rhowch eich manylion hysbys', - }, - }, -}; - -jest.mock('../../../../app/form/validation'); -/* eslint-disable @typescript-eslint/ban-types */ -describe('citizen-home content', () => { - const commonContent = { language: 'en' } as CommonContent; - let generatedContent; - let form; - let fields; - beforeEach(() => { - generatedContent = generateContent(commonContent); - form = generatedContent.form as FormContent; - fields = form.fields as FormFields; - }); - - test('should return correct english content', () => { - expect(generatedContent.title).toEqual( - 'Do the other people named in this application (the applicants) know any of your contact details?' - ); - expect(generatedContent.section).toEqual('Keeping your contact details private'); - }); - - // eslint-disable-next-line jest/expect-expect - test('should return correct english content Data', () => { - languageAssertions('en', enContent, () => generateContent(commonContent)); - }); - - // eslint-disable-next-line jest/expect-expect - test('should return correct welsh content', () => { - languageAssertions('cy', cyContent, () => generateContent({ ...commonContent, language: 'cy' })); - }); - - test('should contain detailsKnown field', () => { - const detailsKnownField = fields.detailsKnown as FormOptions; - expect(detailsKnownField.type).toBe('radios'); - expect(detailsKnownField.classes).toBe('govuk-radios'); - expect((detailsKnownField.section as Function)(generatedContent)).toBe(enContent.section); - expect((detailsKnownField.label as Function)(generatedContent)).toBe(undefined); - expect((detailsKnownField.values[0].label as Function)(generatedContent)).toBe(enContent.one); - expect((detailsKnownField.values[1].label as Function)(generatedContent)).toBe(enContent.two); - expect((detailsKnownField.values[2].label as Function)(generatedContent)).toBe(enContent.three); - }); - - test('should contain continue button', () => { - expect((form.submit?.text as Function)(generatedContent)).toBe('Continue'); - }); -}); -/* eslint-enable @typescript-eslint/ban-types */ diff --git a/src/main/steps/applicant/all-documents/start/content.ts b/src/main/steps/applicant/all-documents/start/content.ts deleted file mode 100644 index 0e02e0f2e7..0000000000 --- a/src/main/steps/applicant/all-documents/start/content.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { TranslationFn } from '../../../../app/controller/GetController'; -import { FormContent } from '../../../../app/form/Form'; -import { isFieldFilledIn } from '../../../../app/form/validation'; - -const en = { - section: 'Keeping your contact details private', - title: 'Do the other people named in this application (the applicants) know any of your contact details?', - one: 'Yes', - two: 'No', - three: "I don't know", - continue: 'Continue', - errors: { - detailsKnown: { - required: 'Enter your details known', - }, - }, -}; - -const cy: typeof en = { - section: 'Cadw eich manylion cyswllt yn breifat', - title: 'A yw’r unigolyn a wnaeth gais i’r llys (y ceisydd) yn gwybod unrhyw rai o’ch manylion cyswllt?', - one: 'Ydy', - two: 'Nac ydy', - three: 'Nid wyf yn gwybod', - continue: 'Parhau', - errors: { - detailsKnown: { - required: 'Rhowch eich manylion hysbys', - }, - }, -}; - -const languages = { - en, - cy, -}; - -export const form: FormContent = { - fields: { - detailsKnown: { - type: 'radios', - classes: 'govuk-radios', - label: l => l.label, - section: l => l.section, - values: [ - { - label: l => l.one, - value: 'Yes', - }, - { - label: l => l.two, - value: 'No', - }, - { - label: l => l.three, - value: 'I', - }, - ], - validator: isFieldFilledIn, - }, - }, - submit: { - text: l => l.continue, - }, -}; - -export const generateContent: TranslationFn = content => { - const translations = languages[content.language]; - return { - ...translations, - form, - }; -}; diff --git a/src/main/steps/applicant/all-documents/start/template.njk b/src/main/steps/applicant/all-documents/start/template.njk deleted file mode 100644 index b804cd04ff..0000000000 --- a/src/main/steps/applicant/all-documents/start/template.njk +++ /dev/null @@ -1,3 +0,0 @@ - -{% extends "common/template.njk" %} - diff --git a/src/main/steps/applicant/application-submitted-fl401/doc/content.test.ts b/src/main/steps/applicant/application-submitted-fl401/doc/content.test.ts deleted file mode 100644 index f19d5c3e4f..0000000000 --- a/src/main/steps/applicant/application-submitted-fl401/doc/content.test.ts +++ /dev/null @@ -1,80 +0,0 @@ -import languageAssertions from '../../../../../test/unit/utils/languageAssertions'; -import { FormContent, FormFields, FormOptions } from '../../../../app/form/Form'; -import { CommonContent } from '../../../common/common.content'; - -import { generateContent } from './content'; - -const enContent = { - section: 'Keeping your contact details private', - title: 'Do the other people named in this application (the applicants) know any of your contact details?', - one: 'Yes', - two: 'No', - three: "I don't know", - continue: 'Continue', - errors: { - detailsKnown: { - required: 'Enter your details known', - }, - }, -}; - -const cyContent = { - section: 'Cadw eich manylion cyswllt yn breifat', - title: 'A yw’r unigolyn a wnaeth gais i’r llys (y ceisydd) yn gwybod unrhyw rai o’ch manylion cyswllt?', - one: 'Ydy', - two: 'Nac ydy', - three: 'Nid wyf yn gwybod', - continue: 'Parhau', - errors: { - detailsKnown: { - required: 'Rhowch eich manylion hysbys', - }, - }, -}; - -jest.mock('../../../../app/form/validation'); -/* eslint-disable @typescript-eslint/ban-types */ -describe('citizen-home content', () => { - const commonContent = { language: 'en' } as CommonContent; - let generatedContent; - let form; - let fields; - beforeEach(() => { - generatedContent = generateContent(commonContent); - form = generatedContent.form as FormContent; - fields = form.fields as FormFields; - }); - - test('should return correct english content', () => { - expect(generatedContent.title).toEqual( - 'Do the other people named in this application (the applicants) know any of your contact details?' - ); - expect(generatedContent.section).toEqual('Keeping your contact details private'); - }); - - // eslint-disable-next-line jest/expect-expect - test('should return correct english content Data', () => { - languageAssertions('en', enContent, () => generateContent(commonContent)); - }); - - // eslint-disable-next-line jest/expect-expect - test('should return correct welsh content', () => { - languageAssertions('cy', cyContent, () => generateContent({ ...commonContent, language: 'cy' })); - }); - - test('should contain detailsKnown field', () => { - const detailsKnownField = fields.detailsKnown as FormOptions; - expect(detailsKnownField.type).toBe('radios'); - expect(detailsKnownField.classes).toBe('govuk-radios'); - expect((detailsKnownField.section as Function)(generatedContent)).toBe(enContent.section); - expect((detailsKnownField.label as Function)(generatedContent)).toBe(undefined); - expect((detailsKnownField.values[0].label as Function)(generatedContent)).toBe(enContent.one); - expect((detailsKnownField.values[1].label as Function)(generatedContent)).toBe(enContent.two); - expect((detailsKnownField.values[2].label as Function)(generatedContent)).toBe(enContent.three); - }); - - test('should contain continue button', () => { - expect((form.submit?.text as Function)(generatedContent)).toBe('Continue'); - }); -}); -/* eslint-enable @typescript-eslint/ban-types */ diff --git a/src/main/steps/applicant/application-submitted-fl401/doc/content.ts b/src/main/steps/applicant/application-submitted-fl401/doc/content.ts deleted file mode 100644 index 0e02e0f2e7..0000000000 --- a/src/main/steps/applicant/application-submitted-fl401/doc/content.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { TranslationFn } from '../../../../app/controller/GetController'; -import { FormContent } from '../../../../app/form/Form'; -import { isFieldFilledIn } from '../../../../app/form/validation'; - -const en = { - section: 'Keeping your contact details private', - title: 'Do the other people named in this application (the applicants) know any of your contact details?', - one: 'Yes', - two: 'No', - three: "I don't know", - continue: 'Continue', - errors: { - detailsKnown: { - required: 'Enter your details known', - }, - }, -}; - -const cy: typeof en = { - section: 'Cadw eich manylion cyswllt yn breifat', - title: 'A yw’r unigolyn a wnaeth gais i’r llys (y ceisydd) yn gwybod unrhyw rai o’ch manylion cyswllt?', - one: 'Ydy', - two: 'Nac ydy', - three: 'Nid wyf yn gwybod', - continue: 'Parhau', - errors: { - detailsKnown: { - required: 'Rhowch eich manylion hysbys', - }, - }, -}; - -const languages = { - en, - cy, -}; - -export const form: FormContent = { - fields: { - detailsKnown: { - type: 'radios', - classes: 'govuk-radios', - label: l => l.label, - section: l => l.section, - values: [ - { - label: l => l.one, - value: 'Yes', - }, - { - label: l => l.two, - value: 'No', - }, - { - label: l => l.three, - value: 'I', - }, - ], - validator: isFieldFilledIn, - }, - }, - submit: { - text: l => l.continue, - }, -}; - -export const generateContent: TranslationFn = content => { - const translations = languages[content.language]; - return { - ...translations, - form, - }; -}; diff --git a/src/main/steps/applicant/application-submitted-fl401/doc/template.njk b/src/main/steps/applicant/application-submitted-fl401/doc/template.njk deleted file mode 100644 index b804cd04ff..0000000000 --- a/src/main/steps/applicant/application-submitted-fl401/doc/template.njk +++ /dev/null @@ -1,3 +0,0 @@ - -{% extends "common/template.njk" %} - diff --git a/src/main/steps/applicant/confirm-contact-details/address/select/form.njk b/src/main/steps/applicant/confirm-contact-details/address/select/form.njk index 46b9e77836..b79b8dd608 100644 --- a/src/main/steps/applicant/confirm-contact-details/address/select/form.njk +++ b/src/main/steps/applicant/confirm-contact-details/address/select/form.njk @@ -2,7 +2,8 @@ {% from "govuk/components/warning-text/macro.njk" import govukWarningText %} {% block before_fields %} - +

{{ postcode }} +

{{ userCase.citizenUserAddressPostcode }}

diff --git a/src/main/steps/applicant/confirm-contact-details/addressdetails/template.njk b/src/main/steps/applicant/confirm-contact-details/addressdetails/template.njk index b9fe58cf2f..6aab30a2cb 100644 --- a/src/main/steps/applicant/confirm-contact-details/addressdetails/template.njk +++ b/src/main/steps/applicant/confirm-contact-details/addressdetails/template.njk @@ -1,8 +1,8 @@ {% extends "common/confirm-contact-details/addressdetails/template.njk" %} {% block form %} -

+

{{ citizenUserAddressText | safe}} -

+

diff --git a/src/main/steps/applicant/confirm-contact-details/checkanswers/content.test.ts b/src/main/steps/applicant/confirm-contact-details/checkanswers/content.test.ts index 6853e1df2a..e8afabecc9 100644 --- a/src/main/steps/applicant/confirm-contact-details/checkanswers/content.test.ts +++ b/src/main/steps/applicant/confirm-contact-details/checkanswers/content.test.ts @@ -4,8 +4,8 @@ import { CommonContent, generatePageContent } from '../../../common/common.conte import { generateContent } from './content'; const en = { - section: 'Check your details', - title: 'Read the information to make sure it is correct, and add any missing details', + title: 'Check your details', + subTitle: 'Read the information to make sure it is correct, and add any missing details', sectionTitles: { applicationDetails: 'Application details', }, diff --git a/src/main/steps/applicant/confirm-contact-details/checkanswers/template.njk b/src/main/steps/applicant/confirm-contact-details/checkanswers/template.njk index a4109c489d..a002113e2f 100644 --- a/src/main/steps/applicant/confirm-contact-details/checkanswers/template.njk +++ b/src/main/steps/applicant/confirm-contact-details/checkanswers/template.njk @@ -1,11 +1,11 @@ {% extends "common/summary/template.njk" %} {% extends "common/breadcrumb/template.njk" %} {% block page_content %} - {% if section %} - {{ section }} - {% endif %} {% if title %} -

{{ title }}

+

{{ title }}

+ {% endif %} + {% if subTitle %} +
{{ subTitle }}
{% endif %} {% if line1 %}
{{ line1 }}
diff --git a/src/main/steps/applicant/orders/content.test.ts b/src/main/steps/applicant/orders/content.test.ts deleted file mode 100644 index d6008a51e9..0000000000 --- a/src/main/steps/applicant/orders/content.test.ts +++ /dev/null @@ -1,64 +0,0 @@ -import languageAssertions from '../../../../test/unit/utils/languageAssertions'; -import { FormContent, FormFields } from '../../../app/form/Form'; -import { CommonContent } from '../../common/common.content'; - -import { generateContent } from './content'; - -const enContent = { - section: 'All documents', - title: 'Orders from the court', - summaryText: 'Contacts for help', - caseNumber: 'Case number', - continue: 'Go back', -}; - -const cyContent = { - section: 'Pob dogfen', - title: 'Gorchmynion gan y llys', - summaryText: 'Cysylltiadau am gymorth', - caseNumber: 'Rhif yr achos ', - continue: 'Yn ôl', -}; - -jest.mock('../../../app/form/validation'); -/* eslint-disable @typescript-eslint/ban-types */ -describe('citizen-home content', () => { - const commonContent = { language: 'en' } as CommonContent; - let generatedContent; - let form; - let fields; - beforeEach(() => { - generatedContent = generateContent(commonContent); - form = generatedContent.form as FormContent; - fields = form.fields as FormFields; - }); - - test('should return correct english content', () => { - expect(generatedContent.title).toEqual('Orders from the court'); - expect(generatedContent.section).toEqual('All documents'); - expect(generatedContent.summaryText).toEqual('Contacts for help'); - expect(generatedContent.caseNumber).toEqual('Case number'); - expect(generatedContent.continue).toEqual('Go back'); - }); - - // eslint-disable-next-line jest/expect-expect - test('should return correct english content Data', () => { - languageAssertions('en', enContent, () => generateContent(commonContent)); - }); - - // eslint-disable-next-line jest/expect-expect - test('should return correct welsh content', () => { - languageAssertions('cy', cyContent, () => generateContent({ ...commonContent, language: 'cy' })); - }); - - test('should contain detailsKnown field', () => { - const userCaseField = fields.caseNumber; - expect(userCaseField.type).toBe('hidden'); - expect((userCaseField.label as Function)(generatedContent)).toBe(enContent.caseNumber + userCaseField.caseCode); - }); - - test('should contain Save and continue button', () => { - expect((form.submit?.text as Function)(generatedContent)).toBe('Go back'); - }); -}); -/* eslint-enable @typescript-eslint/ban-types */ diff --git a/src/main/steps/applicant/orders/content.ts b/src/main/steps/applicant/orders/content.ts deleted file mode 100644 index 433828ea6a..0000000000 --- a/src/main/steps/applicant/orders/content.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { TranslationFn } from '../../../app/controller/GetController'; -import { FormContent, FormFieldsFn } from '../../../app/form/Form'; - -const en = () => { - return { - section: 'All documents', - title: 'Orders from the court', - summaryText: 'Contacts for help', - caseNumber: 'Case number', - continue: 'Go back', - }; -}; - -const cy: typeof en = () => { - return { - section: 'Pob dogfen', - title: 'Gorchmynion gan y llys', - summaryText: 'Cysylltiadau am gymorth', - caseNumber: 'Rhif yr achos ', - continue: 'Yn ôl', - }; -}; - -const languages = { - en, - cy, -}; - -export const form: FormContent = { - fields: userCase => { - return { - caseNumber: { - label: l => l.caseNumber + '' + userCase.caseCode, - type: 'hidden', - labelHidden: true, - }, - }; - }, - submit: { - text: l => l.continue, - classes: 'govuk-button--secondary', - }, -}; - -export const generateContent: TranslationFn = content => { - const translations = languages[content.language](); - return { - ...translations, - form: { ...form, fields: (form.fields as FormFieldsFn)(content.userCase || {}, content.additionalData?.req) }, - }; -}; diff --git a/src/main/steps/applicant/orders/template.njk b/src/main/steps/applicant/orders/template.njk deleted file mode 100644 index 1718c8e8ef..0000000000 --- a/src/main/steps/applicant/orders/template.njk +++ /dev/null @@ -1,34 +0,0 @@ -{% extends "common/template.njk" %} - -{% block page_content %} -

- {{section}} - {{title}} -

-
-
-

{{caseNumber}} {{userCase.id}}

-
-
-
- -
    - -
  1. - -
    - {% for file in userCase.orderCollection %} -
    -
    - {{file.value.otherDetails.orderCreatedDate}} -
    -
    - {{ file.value.orderDocument.document_filename }} -
    -
    - {% endfor %} - -
    -
  2. -
-{% endblock %} \ No newline at end of file diff --git a/src/main/steps/application-within-proceedings/checkanswers/content.test.ts b/src/main/steps/application-within-proceedings/checkanswers/content.test.ts index d5aee0b040..9a0754b7af 100644 --- a/src/main/steps/application-within-proceedings/checkanswers/content.test.ts +++ b/src/main/steps/application-within-proceedings/checkanswers/content.test.ts @@ -8,7 +8,7 @@ import { CommonContent, generatePageContent } from '../../common/common.content' import { generateContent } from './content'; const en = { - section: 'Check your answers', + title: 'Check your answers', caseNumber: 'Case number', application: 'application', sectionTitles: {}, @@ -35,7 +35,7 @@ const en = { }; const cy = { - section: 'Gwirio eich atebion', + title: 'Gwirio eich atebion', caseNumber: 'Rhif yr achos ', application: 'Cais', sectionTitles: {}, diff --git a/src/main/steps/application-within-proceedings/checkanswers/content.ts b/src/main/steps/application-within-proceedings/checkanswers/content.ts index a5992cfea7..c4e62290b0 100644 --- a/src/main/steps/application-within-proceedings/checkanswers/content.ts +++ b/src/main/steps/application-within-proceedings/checkanswers/content.ts @@ -7,7 +7,7 @@ export * from './routeGuard'; import { prepareSummaryList } from './utils'; export const en = { - section: 'Check your answers', + title: 'Check your answers', caseNumber: 'Case number', application: 'application', sectionTitles: {}, @@ -34,7 +34,7 @@ export const en = { }; export const cy = { - section: 'Gwirio eich atebion', + title: 'Gwirio eich atebion', caseNumber: 'Rhif yr achos ', application: 'Cais', sectionTitles: {}, diff --git a/src/main/steps/application-within-proceedings/checkanswers/template.njk b/src/main/steps/application-within-proceedings/checkanswers/template.njk index 73dc763720..e559bca007 100644 --- a/src/main/steps/application-within-proceedings/checkanswers/template.njk +++ b/src/main/steps/application-within-proceedings/checkanswers/template.njk @@ -7,17 +7,14 @@ titleText: errors.paymentError.title, errorList: [ { - html: "
"+errors.paymentError[paymentError.errorContext]+"
" + html: "

"+errors.paymentError[paymentError.errorContext]+"

" } ] }) }} {% endif %} -{% if section %} - {{ section }} - {% endif %} - {% if title %} -

{{ title }}

+{% if title %} +

{{ title }}

{% endif %}
diff --git a/src/main/steps/application-within-proceedings/checkanswers/utils.test.ts b/src/main/steps/application-within-proceedings/checkanswers/utils.test.ts index d9a1960446..8cca24982e 100644 --- a/src/main/steps/application-within-proceedings/checkanswers/utils.test.ts +++ b/src/main/steps/application-within-proceedings/checkanswers/utils.test.ts @@ -1,4 +1,3 @@ -//import mockUserCase from '../../../../test/unit/utils/mockUserCase'; import { YesOrNo } from '../../../app/case/definition'; import { CommonContent, @@ -143,7 +142,7 @@ describe('awp> checkAnswer > utils', () => { text: 'Document uploaded', }, value: { - html: '', + html: '

file_example_TIFF_1MB.tiff

', }, }, { @@ -160,7 +159,7 @@ describe('awp> checkAnswer > utils', () => { text: 'Do you have supporting documents to upload?', }, value: { - html: '', + html: '
Yes
file_example_TIFF.tiff
', }, }, { diff --git a/src/main/steps/application-within-proceedings/checkanswers/utils.ts b/src/main/steps/application-within-proceedings/checkanswers/utils.ts index 22c9648683..e7b398fd1e 100644 --- a/src/main/steps/application-within-proceedings/checkanswers/utils.ts +++ b/src/main/steps/application-within-proceedings/checkanswers/utils.ts @@ -2,6 +2,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { CaseWithId } from '../../../app/case/case'; +import { HTML } from '../../c100-rebuild/check-your-answers/common/htmlSelectors'; import { SummaryListRow } from '../../c100-rebuild/check-your-answers/lib/lib'; import { getYesNoTranslation } from '../../c100-rebuild/check-your-answers/mainUtil'; import { CommonContent } from '../../common/common.content'; @@ -135,7 +136,7 @@ const prepareDocumentView = (userCase: Partial): string => { let tempDetails = '
'; if (userCase?.awp_uploadedApplicationForms?.length) { for (const doc of userCase.awp_uploadedApplicationForms) { - tempDetails = tempDetails + '

' + '' + doc.filename + '' + '

'; + tempDetails = tempDetails + '

' + doc.filename + '

'; } } return tempDetails + '
'; @@ -145,19 +146,25 @@ const prepareSupportingDocumentView = ( userkey: string, userCase: Partial ): string => { - let tempDetails = - '
' + '

' + getYesNoTranslation(language, userkey, 'doTranslation') + '

'; + let tempDetails = userCase?.awp_supportingDocuments?.length + ? HTML.DESCRIPTION_LIST + HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + : HTML.ROW_START_NO_BORDER; + tempDetails += getYesNoTranslation(language, userkey, 'doTranslation'); if (userCase?.awp_supportingDocuments?.length) { - tempDetails = tempDetails + '
'; + tempDetails += HTML.DESCRIPTION_TERM_DETAIL_END; + tempDetails += HTML.ROW_END; for (const doc in userCase.awp_supportingDocuments) { tempDetails = tempDetails + - '

' + - '' + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + userCase.awp_supportingDocuments[doc].filename + - '' + - '

'; + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; } + tempDetails += HTML.DESCRIPTION_LIST_END; + } else { + tempDetails += HTML.ROW_END; } - return tempDetails + '
'; + return tempDetails; }; diff --git a/src/main/steps/application-within-proceedings/guidance/template.njk b/src/main/steps/application-within-proceedings/guidance/template.njk index 58370c3e0e..98e7ee64b4 100644 --- a/src/main/steps/application-within-proceedings/guidance/template.njk +++ b/src/main/steps/application-within-proceedings/guidance/template.njk @@ -18,10 +18,10 @@

{{content | safe}}

{% endfor %} -

{{helpWithFees.title}}

+

{{helpWithFees.title}}

{% for content in helpWithFees.contents %}

{{content | safe}}

{% endfor %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/main/steps/application-within-proceedings/help-with-fees/reference/content.test.ts b/src/main/steps/application-within-proceedings/help-with-fees/reference/content.test.ts index 9508e45c64..1458f78b25 100644 --- a/src/main/steps/application-within-proceedings/help-with-fees/reference/content.test.ts +++ b/src/main/steps/application-within-proceedings/help-with-fees/reference/content.test.ts @@ -8,8 +8,7 @@ import { generateContent } from './content'; const en = { title: 'Do you have a help with fees reference number?', - enterReferenceNumber: - '

Enter your help with fees reference number

', + enterReferenceNumber: 'Enter your help with fees reference number', referenceText: 'You will have received this number when you applied for Help with Fees. This reference must not have been used for a previous application.', hint: 'For example, HWF-A1B-23C', @@ -29,8 +28,7 @@ const en = { const cy: typeof en = { title: 'A oes gennych chi gyfeirnod Help i Dalu Ffioedd?', - enterReferenceNumber: - '

Rhowch eich cyfeirnod Help i Dalu Ffioedd

', + enterReferenceNumber: 'Rhowch eich cyfeirnod Help i Dalu Ffioedd', referenceText: 'Byddwch wedi cael y rhif hwn pan wnaethoch gais am Help i Dalu Ffioedd. Ni ddylai’r cyfernod hwn fod wedi’i ddefnyddio ar gyfer cais blaenorol.', hint: 'Er enghraifft, HWF-A1B-23C', @@ -104,7 +102,9 @@ describe('help with fees content', () => { expect((helpWithFeesReferenceFields.values[0].label as Function)(generatedContent)).toBe(en.yes); expect(referenceSubField?.type).toBe('textAndHtml'); - expect((referenceSubField?.textAndHtml as Function)(generatedContent)).toBe(en.enterReferenceNumber); + expect((referenceSubField?.textAndHtml as Function)(generatedContent)).toBe( + '

Enter your help with fees reference number

' + ); expect(referenceNumberSubField?.type).toBe('text'); expect((referenceNumberSubField?.label as Function)(generatedContent)).toBe(en.referenceText); diff --git a/src/main/steps/application-within-proceedings/help-with-fees/reference/content.ts b/src/main/steps/application-within-proceedings/help-with-fees/reference/content.ts index 65a1bc5e9a..b454e7af70 100644 --- a/src/main/steps/application-within-proceedings/help-with-fees/reference/content.ts +++ b/src/main/steps/application-within-proceedings/help-with-fees/reference/content.ts @@ -7,8 +7,7 @@ import { getApplicationDetails, getApplicationListUrl } from '../../utils'; export const en = { title: 'Do you have a help with fees reference number?', - enterReferenceNumber: - '

Enter your help with fees reference number

', + enterReferenceNumber: 'Enter your help with fees reference number', referenceText: 'You will have received this number when you applied for Help with Fees. This reference must not have been used for a previous application.', hint: 'For example, HWF-A1B-23C', @@ -28,8 +27,7 @@ export const en = { export const cy: typeof en = { title: 'A oes gennych chi gyfeirnod Help i Dalu Ffioedd?', - enterReferenceNumber: - '

Rhowch eich cyfeirnod Help i Dalu Ffioedd

', + enterReferenceNumber: 'Rhowch eich cyfeirnod Help i Dalu Ffioedd', referenceText: 'Byddwch wedi cael y rhif hwn pan wnaethoch gais am Help i Dalu Ffioedd. Ni ddylai’r cyfernod hwn fod wedi’i ddefnyddio ar gyfer cais blaenorol.', hint: 'Er enghraifft, HWF-A1B-23C', @@ -64,7 +62,7 @@ export const form: FormContent = { subFields: { awp_hwf_referenceLabel: { type: 'textAndHtml', - textAndHtml: l => l.enterReferenceNumber, + textAndHtml: l => `

${l.enterReferenceNumber}

`, }, awp_hwf_referenceNumber: { type: 'text', diff --git a/src/main/steps/c100-rebuild/applicant/add-applicants/content.test.ts b/src/main/steps/c100-rebuild/applicant/add-applicants/content.test.ts index e0ba09d8f1..368a67e7ec 100644 --- a/src/main/steps/c100-rebuild/applicant/add-applicants/content.test.ts +++ b/src/main/steps/c100-rebuild/applicant/add-applicants/content.test.ts @@ -12,7 +12,7 @@ import { form, generateContent, generateFormFields } from './content'; jest.mock('../../../../app/form/validation'); const en = { - pageTitle: 'Enter your name ', + title: 'Enter your name', subTitle: 'You and anyone else making this application are known as the applicants.

The other people who will receive this application are known as the respondents. We will ask for their details later.', applicant: 'Applicant', @@ -35,7 +35,7 @@ const en = { }; const cy = { - pageTitle: 'Nodwch eich enw', + title: 'Nodwch eich enw', subTitle: 'Gelwir chi ac unrhyw un arall sy’n gwneud y cais hwn yn ‘y ceiswyr’.

Gelwir y bobl eraill sy’n derbyn y cais hwn yn ‘yr atebwyr.’ Byddwn yn gofyn am eu manylion yn nes ymlaen.', applicant: 'Ceisydd', @@ -115,6 +115,9 @@ describe('checking form fields', () => { hint: hint => hint.firstNameHint, validator: isFieldFilledIn, labelSize: 'none', + attributes: { + autocomplete: 'off', + }, }, applicantLastName: { type: 'text', @@ -122,6 +125,9 @@ describe('checking form fields', () => { label: label => label.lastName, validator: isFieldFilledIn, labelSize: 'none', + attributes: { + autocomplete: 'off', + }, }, addAnotherApplicant: { type: 'button', @@ -168,7 +174,7 @@ describe('applicant > add-applicants > content', () => { }); // eslint-disable-next-line jest/expect-expect test('should return correct english content', () => { - const { errors } = generateFormFields(dummyApplicants); + const { errors } = generateFormFields(dummyApplicants, ''); languageAssertions( 'en', { @@ -184,7 +190,7 @@ describe('applicant > add-applicants > content', () => { // eslint-disable-next-line jest/expect-expect test('should return correct welsh content', () => { - const { errors } = generateFormFields(dummyApplicants); + const { errors } = generateFormFields(dummyApplicants, ''); languageAssertions( 'cy', { @@ -232,32 +238,35 @@ describe('applicant > add-applicants > content', () => { }); test('applicant > add-applicants > content › chekcing generated form fields', () => { - const formFields = generateFormFields([ - { - id: '6b792169-84df-4e9a-8299-c2c77c9b7e58', - applicantFirstName: 'Test', - applicantLastName: 'Test', - personalDetails: { - haveYouChangeName: YesNoEmpty.EMPTY, - applPreviousName: '', - dateOfBirth: { - day: '', - month: '', - year: '', + const formFields = generateFormFields( + [ + { + id: '6b792169-84df-4e9a-8299-c2c77c9b7e58', + applicantFirstName: 'Test', + applicantLastName: 'Test', + personalDetails: { + haveYouChangeName: YesNoEmpty.EMPTY, + applPreviousName: '', + dateOfBirth: { + day: '', + month: '', + year: '', + }, + gender: Gender.EMPTY, + otherGenderDetails: '', + applicantPlaceOfBirth: '', }, - gender: Gender.EMPTY, - otherGenderDetails: '', - applicantPlaceOfBirth: '', + reasonableAdjustmentsFlags: [], }, - reasonableAdjustmentsFlags: [], - }, - ]); + ], + 'add' + ); expect(formFields).not.toBe(null); expect(1).toBe(1); }); test('should generate form fields correctly', () => { - const fields = generateFormFields(dummyApplicants).fields as FormFields; + const fields = generateFormFields(dummyApplicants, '').fields as FormFields; const { fieldset1: fieldset1 } = fields as Record; const { diff --git a/src/main/steps/c100-rebuild/applicant/add-applicants/content.ts b/src/main/steps/c100-rebuild/applicant/add-applicants/content.ts index 928bb44146..d0d31750c3 100644 --- a/src/main/steps/c100-rebuild/applicant/add-applicants/content.ts +++ b/src/main/steps/c100-rebuild/applicant/add-applicants/content.ts @@ -1,12 +1,14 @@ +import _ from 'lodash'; + import { C100ListOfApplicants } from '../../../../app/case/definition'; import { TranslationFn } from '../../../../app/controller/GetController'; -import { FormContent, GenerateDynamicFormFields } from '../../../../app/form/Form'; +import { FormContent, FormInput, GenerateDynamicFormFields } from '../../../../app/form/Form'; import { isFieldFilledIn, isFieldLetters } from '../../../../app/form/validation'; import { C100_APPLICANT_ADD_APPLICANTS } from '../../../urls'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types const en = () => ({ - pageTitle: 'Enter your name ', + title: 'Enter your name', subTitle: 'You and anyone else making this application are known as the applicants.

The other people who will receive this application are known as the respondents. We will ask for their details later.', applicant: 'Applicant', @@ -29,7 +31,7 @@ const en = () => ({ }); const cy = () => ({ - pageTitle: 'Nodwch eich enw', + title: 'Nodwch eich enw', subTitle: 'Gelwir chi ac unrhyw un arall sy’n gwneud y cais hwn yn ‘y ceiswyr’.

Gelwir y bobl eraill sy’n derbyn y cais hwn yn ‘yr atebwyr.’ Byddwn yn gofyn am eu manylion yn nes ymlaen.', applicant: 'Ceisydd', @@ -58,15 +60,36 @@ const languages = { cy, }; -export const generateFormFields = (applicantData: C100ListOfApplicants): GenerateDynamicFormFields => { +export const generateFormFields = ( + applicantData: C100ListOfApplicants, + context: string | undefined +): GenerateDynamicFormFields => { const fields = {}; const errors = { en: {}, cy: {}, }; + const nameFieldConfig: FormInput = { + type: 'text', + labelSize: 'none', + classes: 'govuk-!-width-one-half', + validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, + }; + for (let index = 0; index < applicantData.length; index++) { const count = index + 1; const key = `fieldset${count}`; + const inputFieldConfig = { ...nameFieldConfig }; + + if ((context === 'add' && count === applicantData.length) || (context === 'remove' && count === 1)) { + inputFieldConfig.attributes = { + ...inputFieldConfig.attributes, + autofocus: true, + }; + } fields[key] = { type: 'fieldset', @@ -76,21 +99,14 @@ export const generateFormFields = (applicantData: C100ListOfApplicants): Generat classes: 'govuk-fieldset__legend--m', subFields: { [`ApplicantFirstName-${count}`]: { - type: 'text', - value: applicantData[index].applicantFirstName, - labelSize: 'none', - classes: 'govuk-input govuk-!-width-one-half', + ...inputFieldConfig, label: l => l.firstName, - validator: value => isFieldFilledIn(value) || isFieldLetters(value), + value: applicantData[index].applicantFirstName, }, [`ApplicantLastName-${count}`]: { - type: 'text', + ...inputFieldConfig, label: l => l.lastName, value: applicantData[index].applicantLastName, - classes: 'govuk-input govuk-!-width-one-half', - hint: h => h.caseNumberHint, - labelSize: 'none', - validator: value => isFieldFilledIn(value) || isFieldLetters(value), }, removeApplicant: { type: 'link', @@ -132,13 +148,19 @@ export const form: FormContent = { hint: hint => hint.firstNameHint, validator: value => isFieldFilledIn(value) || isFieldLetters(value), labelSize: 'none', + attributes: { + autocomplete: 'off', + }, }, applicantLastName: { type: 'text', classes: 'govuk-input govuk-!-width-one-half', label: label => label.lastName, - validator: value => isFieldFilledIn(value) || isFieldLetters(value), labelSize: 'none', + validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, }, addAnotherApplicant: { type: 'button', @@ -190,7 +212,10 @@ export const generateContent: TranslationFn = content => { : ([] as C100ListOfApplicants); const translations = languages[content.language](); - const { fields, errors } = generateFormFields(applicantData); + const { fields, errors } = generateFormFields( + applicantData, + _.get(content, 'additionalData.req.session.applicationSettings.dynamicForm.context') + ); translations.errors = { ...translations.errors, diff --git a/src/main/steps/c100-rebuild/applicant/add-applicants/getController.ts b/src/main/steps/c100-rebuild/applicant/add-applicants/getController.ts index f412301360..2169bda377 100644 --- a/src/main/steps/c100-rebuild/applicant/add-applicants/getController.ts +++ b/src/main/steps/c100-rebuild/applicant/add-applicants/getController.ts @@ -6,6 +6,7 @@ import { AppRequest } from '../../../../app/controller/AppRequest'; import { GetController, TranslationFn } from '../../../../app/controller/GetController'; import { Language, generatePageContent } from '../../../../steps/common/common.content'; import { C100_APPLICANT_ADD_APPLICANTS } from '../../../urls'; +import { setDynamicFormContext } from '../../people/util'; @autobind export default class AddApplicants extends GetController { @@ -73,6 +74,7 @@ export default class AddApplicants extends GetController { if (err) { console.log(err); } + setDynamicFormContext(req, 'remove'); res.redirect(C100_APPLICANT_ADD_APPLICANTS); }); } diff --git a/src/main/steps/c100-rebuild/applicant/add-applicants/postController.ts b/src/main/steps/c100-rebuild/applicant/add-applicants/postController.ts index 7aa118ff69..2168aa9f5e 100644 --- a/src/main/steps/c100-rebuild/applicant/add-applicants/postController.ts +++ b/src/main/steps/c100-rebuild/applicant/add-applicants/postController.ts @@ -13,6 +13,7 @@ import { C100_APPLICANT_ADD_APPLICANTS, C100_APPLICANT_ADD_APPLICANTS_CONFIDENTIALITY_DETAILS_KNOW, } from '../../../urls'; +import { setDynamicFormContext } from '../../people/util'; // eslint-disable-next-line import/no-unresolved @autobind @@ -71,6 +72,7 @@ export default class AddApplicantPostController extends PostController{{pageTitle}} +

{{title}}

{% endblock %} \ No newline at end of file diff --git a/src/main/steps/c100-rebuild/applicant/address/select/form.njk b/src/main/steps/c100-rebuild/applicant/address/select/form.njk index b99a2f1284..51b453e19b 100644 --- a/src/main/steps/c100-rebuild/applicant/address/select/form.njk +++ b/src/main/steps/c100-rebuild/applicant/address/select/form.njk @@ -2,7 +2,7 @@ {% from "govuk/components/warning-text/macro.njk" import govukWarningText %} {% block before_fields %} - +

{{ postcode }}

{{ adddressPostCode }}

diff --git a/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/content.test.ts b/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/content.test.ts index a9c1ba34c2..34db265dbb 100644 --- a/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/content.test.ts +++ b/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/content.test.ts @@ -12,7 +12,7 @@ jest.mock('../../../../../app/form/validation'); const en = { caption: 'Keeping your contact details private for', - headingTitle: 'Do the other people named in this application (the respondents) know any of your contact details? ', + title: 'Do the other people named in this application (the respondents) know any of your contact details?', one: 'Yes', two: 'No', three: "I don't know", @@ -20,7 +20,7 @@ const en = { const cy = { caption: 'Cadw eich manylion cyswllt yn breifat ar gyfer', - headingTitle: "A yw'r bobl eraill a enwir yn y cais hwn (yr atebwyr) yn gwybod beth yw eich manylion cyswllt?", + title: "A yw'r bobl eraill a enwir yn y cais hwn (yr atebwyr) yn gwybod beth yw eich manylion cyswllt?", one: 'Ydynt', two: 'Nac ydynt', three: 'Nid wyf yn gwybod ', diff --git a/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/content.ts b/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/content.ts index e854ebec0b..cf91e54073 100644 --- a/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/content.ts +++ b/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/content.ts @@ -6,7 +6,7 @@ import { isFieldFilledIn } from '../../../../../app/form/validation'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export const en = () => ({ caption: 'Keeping your contact details private for', - headingTitle: 'Do the other people named in this application (the respondents) know any of your contact details? ', + title: 'Do the other people named in this application (the respondents) know any of your contact details?', one: 'Yes', two: 'No', three: "I don't know", @@ -20,7 +20,7 @@ export const en = () => ({ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export const cy = () => ({ caption: 'Cadw eich manylion cyswllt yn breifat ar gyfer', - headingTitle: "A yw'r bobl eraill a enwir yn y cais hwn (yr atebwyr) yn gwybod beth yw eich manylion cyswllt?", + title: "A yw'r bobl eraill a enwir yn y cais hwn (yr atebwyr) yn gwybod beth yw eich manylion cyswllt?", one: 'Ydynt', two: 'Nac ydynt', three: 'Nid wyf yn gwybod ', diff --git a/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/template.njk b/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/template.njk index 062f4136f6..02896c25f9 100644 --- a/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/template.njk +++ b/src/main/steps/c100-rebuild/applicant/confidentiality/details-know/template.njk @@ -3,5 +3,5 @@ {% block page_content %} {{caption}} {{applicantName}} -

{{headingTitle}}

+

{{title}}

{% endblock %} diff --git a/src/main/steps/c100-rebuild/applicant/contact-detail/template.njk b/src/main/steps/c100-rebuild/applicant/contact-detail/template.njk index 134c17f40a..ef07666c45 100644 --- a/src/main/steps/c100-rebuild/applicant/contact-detail/template.njk +++ b/src/main/steps/c100-rebuild/applicant/contact-detail/template.njk @@ -4,7 +4,7 @@ {% from "govuk/components/notification-banner/macro.njk" import govukNotificationBanner %} {% set html %} -

{{ applicantIdamEmailHeading }}

+

{{ applicantIdamEmailHeading }}

{{ applicantIdamEmailContent }}

{% endset %} diff --git a/src/main/steps/c100-rebuild/c100sequence.test.ts b/src/main/steps/c100-rebuild/c100sequence.test.ts index cd9b24ee32..2ba729985e 100644 --- a/src/main/steps/c100-rebuild/c100sequence.test.ts +++ b/src/main/steps/c100-rebuild/c100sequence.test.ts @@ -11,7 +11,7 @@ import { C100Sequence } from './c100sequence'; describe('C100Sequence', () => { test('should contain 1 entries in c100 screen sequence', () => { - expect(C100Sequence).toHaveLength(103); + expect(C100Sequence).toHaveLength(102); expect(C100Sequence[0].url).toBe('/c100-rebuild/confidentiality/details-know'); expect(C100Sequence[0].showInSection).toBe('c100'); @@ -192,177 +192,173 @@ describe('C100Sequence', () => { expect(C100Sequence[30].showInSection).toBe('c100'); expect(C100Sequence[30].getNextStep({})).toBe('/c100-rebuild/screening-questions/consent-agreement'); - expect(C100Sequence[31].url).toBe('/c100-rebuild/document-submission'); + expect(C100Sequence[31].url).toBe('/c100-rebuild/miam/mediator-document'); expect(C100Sequence[31].showInSection).toBe('c100'); - expect(C100Sequence[31].getNextStep({})).toBe('/c100-rebuild/document-submission'); + expect(C100Sequence[31].getNextStep({ miam_haveDocSigned: YesOrNo.YES })).toBe('/c100-rebuild/miam/upload'); + expect(C100Sequence[31].getNextStep({ miam_haveDocSigned: YesOrNo.NO })).toBe('/c100-rebuild/miam/get-doc'); - expect(C100Sequence[32].url).toBe('/c100-rebuild/miam/mediator-document'); + expect(C100Sequence[32].url).toBe('/c100-rebuild/miam/other-proceedings'); expect(C100Sequence[32].showInSection).toBe('c100'); - expect(C100Sequence[32].getNextStep({ miam_haveDocSigned: YesOrNo.YES })).toBe('/c100-rebuild/miam/upload'); - expect(C100Sequence[32].getNextStep({ miam_haveDocSigned: YesOrNo.NO })).toBe('/c100-rebuild/miam/get-doc'); + expect(C100Sequence[32].getNextStep({ miam_otherProceedings: YesOrNo.YES })).toBe('/c100-rebuild/miam/no-need'); + expect(C100Sequence[32].getNextStep({ miam_otherProceedings: YesOrNo.NO })).toBe('/c100-rebuild/miam/miam-info'); - expect(C100Sequence[33].url).toBe('/c100-rebuild/miam/other-proceedings'); + expect(C100Sequence[33].url).toBe('/c100-rebuild/miam/attendance'); expect(C100Sequence[33].showInSection).toBe('c100'); - expect(C100Sequence[33].getNextStep({ miam_otherProceedings: YesOrNo.YES })).toBe('/c100-rebuild/miam/no-need'); - expect(C100Sequence[33].getNextStep({ miam_otherProceedings: YesOrNo.NO })).toBe('/c100-rebuild/miam/miam-info'); + expect(C100Sequence[33].getNextStep({ miam_attendance: YesOrNo.YES })).toBe('/c100-rebuild/miam/mediator-document'); + expect(C100Sequence[33].getNextStep({ miam_attendance: YesOrNo.NO })).toBe('/c100-rebuild/miam/valid-reason'); - expect(C100Sequence[34].url).toBe('/c100-rebuild/miam/attendance'); + expect(C100Sequence[34].url).toBe('/c100-rebuild/miam/mediator-confirmation'); expect(C100Sequence[34].showInSection).toBe('c100'); - expect(C100Sequence[34].getNextStep({ miam_attendance: YesOrNo.YES })).toBe('/c100-rebuild/miam/mediator-document'); - expect(C100Sequence[34].getNextStep({ miam_attendance: YesOrNo.NO })).toBe('/c100-rebuild/miam/valid-reason'); - - expect(C100Sequence[35].url).toBe('/c100-rebuild/miam/mediator-confirmation'); - expect(C100Sequence[35].showInSection).toBe('c100'); - expect(C100Sequence[35].getNextStep({ miam_mediatorDocument: YesOrNo.YES })).toBe( + expect(C100Sequence[34].getNextStep({ miam_mediatorDocument: YesOrNo.YES })).toBe( '/c100-rebuild/miam/mediator-document' ); - expect(C100Sequence[35].getNextStep({ miam_mediatorDocument: YesOrNo.NO })).toBe('/c100-rebuild/miam/valid-reason'); + expect(C100Sequence[34].getNextStep({ miam_mediatorDocument: YesOrNo.NO })).toBe('/c100-rebuild/miam/valid-reason'); + + expect(C100Sequence[35].url).toBe('/c100-rebuild/miam/urgency'); + expect(C100Sequence[35].showInSection).toBe('c100'); + expect(C100Sequence[35].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/previous-attendance'); - expect(C100Sequence[36].url).toBe('/c100-rebuild/miam/urgency'); + expect(C100Sequence[36].url).toBe('/c100-rebuild/miam/previous-attendance'); expect(C100Sequence[36].showInSection).toBe('c100'); - expect(C100Sequence[36].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/previous-attendance'); + expect(C100Sequence[36].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/miam-other'); - expect(C100Sequence[37].url).toBe('/c100-rebuild/miam/previous-attendance'); + expect(C100Sequence[37].url).toBe('/c100-rebuild/miam/upload-evidence-of-attending-miam-or-ncdr/:removeFileId?'); expect(C100Sequence[37].showInSection).toBe('c100'); - expect(C100Sequence[37].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/miam-other'); + expect(C100Sequence[37].getNextStep({})).toBe('/c100-rebuild/miam/get-mediator'); - expect(C100Sequence[38].url).toBe('/c100-rebuild/miam/upload-evidence-of-attending-miam-or-ncdr/:removeFileId?'); + expect(C100Sequence[38].url).toBe('/c100-rebuild/miam/previous-miam-attendance-or-ncdr'); expect(C100Sequence[38].showInSection).toBe('c100'); expect(C100Sequence[38].getNextStep({})).toBe('/c100-rebuild/miam/get-mediator'); - expect(C100Sequence[39].url).toBe('/c100-rebuild/miam/previous-miam-attendance-or-ncdr'); + expect(C100Sequence[39].url).toBe('/c100-rebuild/miam/miam-info'); expect(C100Sequence[39].showInSection).toBe('c100'); - expect(C100Sequence[39].getNextStep({})).toBe('/c100-rebuild/miam/get-mediator'); + expect(C100Sequence[39].getNextStep({})).toBe('/c100-rebuild/miam/attendance'); - expect(C100Sequence[40].url).toBe('/c100-rebuild/miam/miam-info'); + expect(C100Sequence[40].url).toBe('/c100-rebuild/miam/valid-reason'); expect(C100Sequence[40].showInSection).toBe('c100'); - expect(C100Sequence[40].getNextStep({})).toBe('/c100-rebuild/miam/attendance'); + expect(C100Sequence[40].getNextStep({ miam_validReason: YesOrNo.YES })).toBe('/c100-rebuild/miam/general-reasons'); + expect(C100Sequence[40].getNextStep({ miam_validReason: YesOrNo.NO })).toBe('/c100-rebuild/miam/get-mediator'); - expect(C100Sequence[41].url).toBe('/c100-rebuild/miam/valid-reason'); + expect(C100Sequence[41].url).toBe('/c100-rebuild/miam/no-need'); expect(C100Sequence[41].showInSection).toBe('c100'); - expect(C100Sequence[41].getNextStep({ miam_validReason: YesOrNo.YES })).toBe('/c100-rebuild/miam/general-reasons'); - expect(C100Sequence[41].getNextStep({ miam_validReason: YesOrNo.NO })).toBe('/c100-rebuild/miam/get-mediator'); + expect(C100Sequence[41].getNextStep({})).toBe('/c100-rebuild/other-proceedings/current-previous-proceedings'); - expect(C100Sequence[42].url).toBe('/c100-rebuild/miam/no-need'); + expect(C100Sequence[42].url).toBe('/c100-rebuild/miam/miam-other'); expect(C100Sequence[42].showInSection).toBe('c100'); - expect(C100Sequence[42].getNextStep({})).toBe('/c100-rebuild/other-proceedings/current-previous-proceedings'); + expect(C100Sequence[42].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/get-mediator'); - expect(C100Sequence[43].url).toBe('/c100-rebuild/miam/miam-other'); + expect(C100Sequence[43].url).toBe('/c100-rebuild/miam/no-access-to-mediator'); expect(C100Sequence[43].showInSection).toBe('c100'); - expect(C100Sequence[43].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/get-mediator'); - - expect(C100Sequence[44].url).toBe('/c100-rebuild/miam/no-access-to-mediator'); - expect(C100Sequence[44].showInSection).toBe('c100'); - expect(C100Sequence[44].getNextStep(miamMockData.session.userCase)).toBe( + expect(C100Sequence[43].getNextStep(miamMockData.session.userCase)).toBe( '/c100-rebuild/miam/miam-excemptions-summary' ); - expect(C100Sequence[45].url).toBe('/c100-rebuild/miam/child-protection'); + expect(C100Sequence[44].url).toBe('/c100-rebuild/miam/child-protection'); + expect(C100Sequence[44].showInSection).toBe('c100'); + expect(C100Sequence[44].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/urgency'); + + expect(C100Sequence[45].url).toBe('/c100-rebuild/miam/domestic-abuse/domestic-abuse'); expect(C100Sequence[45].showInSection).toBe('c100'); - expect(C100Sequence[45].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/urgency'); + expect(C100Sequence[45].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/child-protection'); - expect(C100Sequence[46].url).toBe('/c100-rebuild/miam/domestic-abuse/domestic-abuse'); + expect(C100Sequence[46].url).toBe('/c100-rebuild/miam/domestic-abuse/providing-evidence'); expect(C100Sequence[46].showInSection).toBe('c100'); expect(C100Sequence[46].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/child-protection'); - expect(C100Sequence[47].url).toBe('/c100-rebuild/miam/domestic-abuse/providing-evidence'); + expect(C100Sequence[47].url).toBe('/c100-rebuild/miam/domestic-abuse/upload-evidence/:removeFileId?'); expect(C100Sequence[47].showInSection).toBe('c100'); expect(C100Sequence[47].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/child-protection'); - expect(C100Sequence[48].url).toBe('/c100-rebuild/miam/domestic-abuse/upload-evidence/:removeFileId?'); + expect(C100Sequence[48].url).toBe('/c100-rebuild/miam/general-reasons'); expect(C100Sequence[48].showInSection).toBe('c100'); - expect(C100Sequence[48].getNextStep(miamMockData.session.userCase)).toBe('/c100-rebuild/miam/child-protection'); - - expect(C100Sequence[49].url).toBe('/c100-rebuild/miam/general-reasons'); - expect(C100Sequence[49].showInSection).toBe('c100'); - expect(C100Sequence[49].getNextStep(miamMockData.session.userCase)).toBe( + expect(C100Sequence[48].getNextStep(miamMockData.session.userCase)).toBe( '/c100-rebuild/miam/domestic-abuse/domestic-abuse' ); - expect(C100Sequence[50].url).toBe('/c100-rebuild/miam/get-mediator'); + expect(C100Sequence[49].url).toBe('/c100-rebuild/miam/get-mediator'); + expect(C100Sequence[49].showInSection).toBe('c100'); + expect(C100Sequence[49].getNextStep({})).toBe('/c100-rebuild/miam/get-mediator'); + + expect(C100Sequence[50].url).toBe('/c100-rebuild/miam/upload'); expect(C100Sequence[50].showInSection).toBe('c100'); - expect(C100Sequence[50].getNextStep({})).toBe('/c100-rebuild/miam/get-mediator'); + expect(C100Sequence[50].getNextStep({})).toBe('/c100-rebuild/miam/upload-confirmation'); - expect(C100Sequence[51].url).toBe('/c100-rebuild/miam/upload'); + expect(C100Sequence[51].url).toBe('/c100-rebuild/miam/upload-confirmation'); expect(C100Sequence[51].showInSection).toBe('c100'); - expect(C100Sequence[51].getNextStep({})).toBe('/c100-rebuild/miam/upload-confirmation'); + expect(C100Sequence[51].getNextStep({})).toBe('/c100-rebuild/typeoforder/select-courtorder'); - expect(C100Sequence[52].url).toBe('/c100-rebuild/miam/upload-confirmation'); + expect(C100Sequence[52].url).toBe('/c100-rebuild/miam/get-doc'); expect(C100Sequence[52].showInSection).toBe('c100'); - expect(C100Sequence[52].getNextStep({})).toBe('/c100-rebuild/typeoforder/select-courtorder'); + expect(C100Sequence[52].getNextStep({})).toBe('/c100-rebuild/miam/get-doc'); - expect(C100Sequence[53].url).toBe('/c100-rebuild/miam/get-doc'); + expect(C100Sequence[53].url).toBe('/c100-rebuild/miam/miam-excemptions-summary'); expect(C100Sequence[53].showInSection).toBe('c100'); - expect(C100Sequence[53].getNextStep({})).toBe('/c100-rebuild/miam/get-doc'); - - expect(C100Sequence[54].url).toBe('/c100-rebuild/miam/miam-excemptions-summary'); - expect(C100Sequence[54].showInSection).toBe('c100'); - expect(C100Sequence[54].getNextStep(miamMockData.session.userCase)).toBe( + expect(C100Sequence[53].getNextStep(miamMockData.session.userCase)).toBe( '/c100-rebuild/typeoforder/select-courtorder' ); - expect(C100Sequence[55].url).toBe('/c100-rebuild/hearing-urgency/urgent'); - expect(C100Sequence[55].getNextStep({ hu_urgentHearingReasons: YesOrNo.YES })).toBe( + expect(C100Sequence[54].url).toBe('/c100-rebuild/hearing-urgency/urgent'); + expect(C100Sequence[54].getNextStep({ hu_urgentHearingReasons: YesOrNo.YES })).toBe( '/c100-rebuild/hearing-urgency/urgent-details' ); - expect(C100Sequence[55].getNextStep({ hu_urgentHearingReasons: YesOrNo.NO })).toBe( + expect(C100Sequence[54].getNextStep({ hu_urgentHearingReasons: YesOrNo.NO })).toBe( '/c100-rebuild/hearing-without-notice/hearing-part1' ); - expect(C100Sequence[56].url).toBe('/c100-rebuild/hearing-urgency/urgent-details'); - expect(C100Sequence[56].showInSection).toBe('c100'); - expect(C100Sequence[56].getNextStep({})).toBe('/c100-rebuild/hearing-without-notice/hearing-part1'); + expect(C100Sequence[55].url).toBe('/c100-rebuild/hearing-urgency/urgent-details'); + expect(C100Sequence[55].showInSection).toBe('c100'); + expect(C100Sequence[55].getNextStep({})).toBe('/c100-rebuild/hearing-without-notice/hearing-part1'); - expect(C100Sequence[57].url).toBe('/c100-rebuild/screening-questions/consent-agreement'); - expect(C100Sequence[57].showInSection).toBe('c100'); - expect(C100Sequence[57].getNextStep({ sq_writtenAgreement: YesOrNo.YES })).toBe( + expect(C100Sequence[56].url).toBe('/c100-rebuild/screening-questions/consent-agreement'); + expect(C100Sequence[56].showInSection).toBe('c100'); + expect(C100Sequence[56].getNextStep({ sq_writtenAgreement: YesOrNo.YES })).toBe( '/c100-rebuild/typeoforder/select-courtorder' ); - expect(C100Sequence[57].getNextStep({ sq_writtenAgreement: YesOrNo.NO })).toBe( + expect(C100Sequence[56].getNextStep({ sq_writtenAgreement: YesOrNo.NO })).toBe( '/c100-rebuild/screening-questions/alternative-resolution' ); - expect(C100Sequence[58].url).toBe('/c100-rebuild/screening-questions/alternative-resolution'); - expect(C100Sequence[58].showInSection).toBe('c100'); - expect(C100Sequence[58].getNextStep({})).toBe('/c100-rebuild/screening-questions/alternative-routes'); + expect(C100Sequence[57].url).toBe('/c100-rebuild/screening-questions/alternative-resolution'); + expect(C100Sequence[57].showInSection).toBe('c100'); + expect(C100Sequence[57].getNextStep({})).toBe('/c100-rebuild/screening-questions/alternative-routes'); - expect(C100Sequence[59].url).toBe('/c100-rebuild/screening-questions/legal-representation'); - expect(C100Sequence[59].showInSection).toBe('c100'); - expect(C100Sequence[59].getNextStep({ sq_legalRepresentation: YesOrNo.YES })).toBe( + expect(C100Sequence[58].url).toBe('/c100-rebuild/screening-questions/legal-representation'); + expect(C100Sequence[58].showInSection).toBe('c100'); + expect(C100Sequence[58].getNextStep({ sq_legalRepresentation: YesOrNo.YES })).toBe( '/c100-rebuild/screening-questions/legal-representation-application' ); - expect(C100Sequence[59].getNextStep({ sq_legalRepresentation: YesOrNo.NO })).toBe( + expect(C100Sequence[58].getNextStep({ sq_legalRepresentation: YesOrNo.NO })).toBe( '/c100-rebuild/screening-questions/permission' ); - expect(C100Sequence[60].url).toBe('/c100-rebuild/screening-questions/legal-representation-application'); - expect(C100Sequence[60].showInSection).toBe('c100'); - expect(C100Sequence[60].getNextStep({ sq_legalRepresentationApplication: YesOrNo.YES })).toBe( + expect(C100Sequence[59].url).toBe('/c100-rebuild/screening-questions/legal-representation-application'); + expect(C100Sequence[59].showInSection).toBe('c100'); + expect(C100Sequence[59].getNextStep({ sq_legalRepresentationApplication: YesOrNo.YES })).toBe( '/c100-rebuild/screening-questions/contact-representative' ); - expect(C100Sequence[60].getNextStep({ sq_legalRepresentationApplication: YesOrNo.NO })).toBe( + expect(C100Sequence[59].getNextStep({ sq_legalRepresentationApplication: YesOrNo.NO })).toBe( '/c100-rebuild/screening-questions/permission' ); - expect(C100Sequence[61].url).toBe('/c100-rebuild/screening-questions/permissions-request'); + expect(C100Sequence[60].url).toBe('/c100-rebuild/screening-questions/permissions-request'); + expect(C100Sequence[60].showInSection).toBe('c100'); + expect(C100Sequence[60].getNextStep({})).toBe('/c100-rebuild/miam/other-proceedings'); + + expect(C100Sequence[61].url).toBe('/c100-rebuild/screening-questions/alternative-routes'); expect(C100Sequence[61].showInSection).toBe('c100'); - expect(C100Sequence[61].getNextStep({})).toBe('/c100-rebuild/miam/other-proceedings'); + expect(C100Sequence[61].getNextStep({})).toBe('/c100-rebuild/screening-questions/legal-representation'); - expect(C100Sequence[62].url).toBe('/c100-rebuild/screening-questions/alternative-routes'); + expect(C100Sequence[62].url).toBe('/c100-rebuild/screening-questions/permissions-why'); expect(C100Sequence[62].showInSection).toBe('c100'); - expect(C100Sequence[62].getNextStep({})).toBe('/c100-rebuild/screening-questions/legal-representation'); + expect(C100Sequence[62].getNextStep({})).toBe('/c100-rebuild/screening-questions/permissions-request'); - expect(C100Sequence[63].url).toBe('/c100-rebuild/screening-questions/permissions-why'); + expect(C100Sequence[63].url).toBe('/c100-rebuild/screening-questions/permission'); expect(C100Sequence[63].showInSection).toBe('c100'); - expect(C100Sequence[63].getNextStep({})).toBe('/c100-rebuild/screening-questions/permissions-request'); + expect(C100Sequence[63].getNextStep({})).toBe('/c100-rebuild/miam/other-proceedings'); - expect(C100Sequence[64].url).toBe('/c100-rebuild/screening-questions/permission'); + expect(C100Sequence[64].url).toBe('/c100-rebuild/screening-questions/contact-representative'); expect(C100Sequence[64].showInSection).toBe('c100'); - expect(C100Sequence[64].getNextStep({})).toBe('/c100-rebuild/miam/other-proceedings'); - - expect(C100Sequence[65].url).toBe('/c100-rebuild/screening-questions/contact-representative'); - expect(C100Sequence[65].showInSection).toBe('c100'); - expect(C100Sequence[65].getNextStep({})).toBe('/c100-rebuild/screening-questions/contact-representative'); + expect(C100Sequence[64].getNextStep({})).toBe('/c100-rebuild/screening-questions/contact-representative'); /*expect(C100Sequence[88].url).toBe('/c100-rebuild/applicant/add-applicants'); expect(C100Sequence[88].showInSection).toBe('c100'); @@ -415,173 +411,173 @@ describe('C100Sequence', () => { expect(C100Sequence[96].showInSection).toBe('c100'); expect(C100Sequence[96].getNextStep({})).toBe('/c100-rebuild/applicant/address/lookup'); */ - expect(C100Sequence[75].url).toBe('/c100-rebuild/child-details/has-other-children'); - expect(C100Sequence[75].showInSection).toBe('c100'); - expect(C100Sequence[75].getNextStep({ ocd_hasOtherChildren: YesOrNo.NO })).toBe( + expect(C100Sequence[74].url).toBe('/c100-rebuild/child-details/has-other-children'); + expect(C100Sequence[74].showInSection).toBe('c100'); + expect(C100Sequence[74].getNextStep({ ocd_hasOtherChildren: YesOrNo.NO })).toBe( '/c100-rebuild/applicant/add-applicants' ); - expect(C100Sequence[75].getNextStep({ ocd_hasOtherChildren: YesOrNo.YES })).toBe( + expect(C100Sequence[74].getNextStep({ ocd_hasOtherChildren: YesOrNo.YES })).toBe( '/c100-rebuild/child-details/other-children/names' ); - expect(C100Sequence[76].url).toBe('/c100-rebuild/child-details/other-children/names'); + expect(C100Sequence[75].url).toBe('/c100-rebuild/child-details/other-children/names'); + expect(C100Sequence[75].showInSection).toBe('c100'); + expect(C100Sequence[75].getNextStep(otherChildrenMockData.session.userCase, otherChildrenMockData)).toBe( + '/c100-rebuild/child-details/other-children/c9f56483-6e2d-43ce-9de8-72661755b87c/personal-details' + ); + + expect(C100Sequence[76].url).toBe('/c100-rebuild/child-details/other-children/:childId/personal-details'); expect(C100Sequence[76].showInSection).toBe('c100'); expect(C100Sequence[76].getNextStep(otherChildrenMockData.session.userCase, otherChildrenMockData)).toBe( - '/c100-rebuild/child-details/other-children/c9f56483-6e2d-43ce-9de8-72661755b87c/personal-details' + '/c100-rebuild/applicant/add-applicants' ); - expect(C100Sequence[77].url).toBe('/c100-rebuild/child-details/other-children/:childId/personal-details'); + expect(C100Sequence[77].url).toBe('/c100-rebuild/respondent-details/add-respondents'); expect(C100Sequence[77].showInSection).toBe('c100'); - expect(C100Sequence[77].getNextStep(otherChildrenMockData.session.userCase, otherChildrenMockData)).toBe( - '/c100-rebuild/applicant/add-applicants' + expect(C100Sequence[77].getNextStep(respondentMockData.session.userCase)).toBe( + '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/personal-details' ); - expect(C100Sequence[78].url).toBe('/c100-rebuild/respondent-details/add-respondents'); + expect(C100Sequence[78].url).toBe('/c100-rebuild/respondent-details/:respondentId/personal-details'); expect(C100Sequence[78].showInSection).toBe('c100'); - expect(C100Sequence[78].getNextStep(respondentMockData.session.userCase)).toBe( - '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/personal-details' + expect(C100Sequence[78].getNextStep(respondentMockData.session.userCase, respondentMockData)).toBe( + '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/relationship-to-child/7483640e-0817-4ddc-b709-6723f7925474' ); - expect(C100Sequence[79].url).toBe('/c100-rebuild/respondent-details/:respondentId/personal-details'); + expect(C100Sequence[79].url).toBe('/c100-rebuild/respondent-details/:respondentId/relationship-to-child/:childId'); expect(C100Sequence[79].showInSection).toBe('c100'); expect(C100Sequence[79].getNextStep(respondentMockData.session.userCase, respondentMockData)).toBe( - '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/relationship-to-child/7483640e-0817-4ddc-b709-6723f7925474' + '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/address/lookup' ); - expect(C100Sequence[80].url).toBe('/c100-rebuild/respondent-details/:respondentId/relationship-to-child/:childId'); + expect(C100Sequence[80].url).toBe('/c100-rebuild/respondent-details/:respondentId/address/lookup'); expect(C100Sequence[80].showInSection).toBe('c100'); expect(C100Sequence[80].getNextStep(respondentMockData.session.userCase, respondentMockData)).toBe( - '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/address/lookup' + '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/address/select' ); - expect(C100Sequence[81].url).toBe('/c100-rebuild/respondent-details/:respondentId/address/lookup'); + expect(C100Sequence[81].url).toBe('/c100-rebuild/respondent-details/:respondentId/address/select'); expect(C100Sequence[81].showInSection).toBe('c100'); expect(C100Sequence[81].getNextStep(respondentMockData.session.userCase, respondentMockData)).toBe( - '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/address/select' + '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/address/manual' ); - expect(C100Sequence[82].url).toBe('/c100-rebuild/respondent-details/:respondentId/address/select'); + expect(C100Sequence[82].url).toBe('/c100-rebuild/respondent-details/:respondentId/address/manual'); expect(C100Sequence[82].showInSection).toBe('c100'); expect(C100Sequence[82].getNextStep(respondentMockData.session.userCase, respondentMockData)).toBe( - '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/address/manual' + '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/contact-details' ); - expect(C100Sequence[83].url).toBe('/c100-rebuild/respondent-details/:respondentId/address/manual'); + expect(C100Sequence[83].url).toBe('/c100-rebuild/respondent-details/:respondentId/contact-details'); expect(C100Sequence[83].showInSection).toBe('c100'); expect(C100Sequence[83].getNextStep(respondentMockData.session.userCase, respondentMockData)).toBe( - '/c100-rebuild/respondent-details/2732dd53-2e6c-46f9-88cd-08230e735b08/contact-details' - ); - - expect(C100Sequence[84].url).toBe('/c100-rebuild/respondent-details/:respondentId/contact-details'); - expect(C100Sequence[84].showInSection).toBe('c100'); - expect(C100Sequence[84].getNextStep(respondentMockData.session.userCase, respondentMockData)).toBe( '/c100-rebuild/other-person-details/other-person-check' ); - expect(C100Sequence[85].url).toBe('/c100-rebuild/other-person-details/other-person-check'); - expect(C100Sequence[85].showInSection).toBe('c100'); - expect(C100Sequence[85].getNextStep({ oprs_otherPersonCheck: YesOrNo.YES })).toBe( + expect(C100Sequence[84].url).toBe('/c100-rebuild/other-person-details/other-person-check'); + expect(C100Sequence[84].showInSection).toBe('c100'); + expect(C100Sequence[84].getNextStep({ oprs_otherPersonCheck: YesOrNo.YES })).toBe( '/c100-rebuild/other-person-details/add-other-persons' ); expect( - C100Sequence[85].getNextStep( + C100Sequence[84].getNextStep( { ...otherPersonMockData.session.userCase, oprs_otherPersonCheck: YesOrNo.NO }, otherPersonMockData ) ).toBe('/c100-rebuild/child-details/7483640e-0817-4ddc-b709-6723f7925474/live-with/mainly-live-with'); - expect(C100Sequence[86].url).toBe('/c100-rebuild/other-person-details/add-other-persons'); + expect(C100Sequence[85].url).toBe('/c100-rebuild/other-person-details/add-other-persons'); + expect(C100Sequence[85].showInSection).toBe('c100'); + expect(C100Sequence[85].getNextStep(otherPersonMockData.session.userCase, otherPersonMockData)).toBe( + '/c100-rebuild/other-person-details/7228444b-ef3f-4202-a1e7-cdcd2316e1f6/personal-details' + ); + + expect(C100Sequence[86].url).toBe('/c100-rebuild/other-person-details/:otherPersonId/personal-details'); expect(C100Sequence[86].showInSection).toBe('c100'); expect(C100Sequence[86].getNextStep(otherPersonMockData.session.userCase, otherPersonMockData)).toBe( - '/c100-rebuild/other-person-details/7228444b-ef3f-4202-a1e7-cdcd2316e1f6/personal-details' + '/c100-rebuild/other-person-details/7228444b-ef3f-4202-a1e7-cdcd2316e1f6/relationship-to-child/7483640e-0817-4ddc-b709-6723f7925474' ); - expect(C100Sequence[87].url).toBe('/c100-rebuild/other-person-details/:otherPersonId/personal-details'); + expect(C100Sequence[87].url).toBe('/c100-rebuild/other-person-details/:otherPersonId/address/lookup'); expect(C100Sequence[87].showInSection).toBe('c100'); expect(C100Sequence[87].getNextStep(otherPersonMockData.session.userCase, otherPersonMockData)).toBe( - '/c100-rebuild/other-person-details/7228444b-ef3f-4202-a1e7-cdcd2316e1f6/relationship-to-child/7483640e-0817-4ddc-b709-6723f7925474' + '/c100-rebuild/other-person-details/7228444b-ef3f-4202-a1e7-cdcd2316e1f6/address/select' ); - expect(C100Sequence[88].url).toBe('/c100-rebuild/other-person-details/:otherPersonId/address/lookup'); + expect(C100Sequence[88].url).toBe('/c100-rebuild/other-person-details/:otherPersonId/address/select'); expect(C100Sequence[88].showInSection).toBe('c100'); expect(C100Sequence[88].getNextStep(otherPersonMockData.session.userCase, otherPersonMockData)).toBe( - '/c100-rebuild/other-person-details/7228444b-ef3f-4202-a1e7-cdcd2316e1f6/address/select' + '/c100-rebuild/other-person-details/7228444b-ef3f-4202-a1e7-cdcd2316e1f6/address/manual' ); - expect(C100Sequence[89].url).toBe('/c100-rebuild/other-person-details/:otherPersonId/address/select'); + expect(C100Sequence[89].url).toBe('/c100-rebuild/other-person-details/:otherPersonId/address/manual'); expect(C100Sequence[89].showInSection).toBe('c100'); expect(C100Sequence[89].getNextStep(otherPersonMockData.session.userCase, otherPersonMockData)).toBe( - '/c100-rebuild/other-person-details/7228444b-ef3f-4202-a1e7-cdcd2316e1f6/address/manual' + '/c100-rebuild/child-details/7483640e-0817-4ddc-b709-6723f7925474/live-with/mainly-live-with' ); - expect(C100Sequence[90].url).toBe('/c100-rebuild/other-person-details/:otherPersonId/address/manual'); + expect(C100Sequence[90].url).toBe( + '/c100-rebuild/other-person-details/:otherPersonId/relationship-to-child/:childId' + ); expect(C100Sequence[90].showInSection).toBe('c100'); expect(C100Sequence[90].getNextStep(otherPersonMockData.session.userCase, otherPersonMockData)).toBe( - '/c100-rebuild/child-details/7483640e-0817-4ddc-b709-6723f7925474/live-with/mainly-live-with' + '/c100-rebuild/refuge/staying-in-refuge/7228444b-ef3f-4202-a1e7-cdcd2316e1f6?' ); - expect(C100Sequence[91].url).toBe( - '/c100-rebuild/other-person-details/:otherPersonId/relationship-to-child/:childId' - ); + expect(C100Sequence[91].url).toBe('/c100-rebuild/child-details/:childId/live-with/mainly-live-with'); expect(C100Sequence[91].showInSection).toBe('c100'); - expect(C100Sequence[91].getNextStep(otherPersonMockData.session.userCase, otherPersonMockData)).toBe( - '/c100-rebuild/refuge/staying-in-refuge/7228444b-ef3f-4202-a1e7-cdcd2316e1f6?' + expect(C100Sequence[91].getNextStep(childrenMockData.session.userCase, childrenMockData)).toBe( + '/c100-rebuild/child-details/7483640e-0817-4ddc-b709-6723f7925474/live-with/living-arrangements' ); - expect(C100Sequence[92].url).toBe('/c100-rebuild/child-details/:childId/live-with/mainly-live-with'); + expect(C100Sequence[92].url).toBe('/c100-rebuild/child-details/:childId/live-with/living-arrangements'); expect(C100Sequence[92].showInSection).toBe('c100'); expect(C100Sequence[92].getNextStep(childrenMockData.session.userCase, childrenMockData)).toBe( - '/c100-rebuild/child-details/7483640e-0817-4ddc-b709-6723f7925474/live-with/living-arrangements' + '/c100-rebuild/other-proceedings/current-previous-proceedings' ); - expect(C100Sequence[93].url).toBe('/c100-rebuild/child-details/:childId/live-with/living-arrangements'); + expect(C100Sequence[93].url).toBe('/c100-rebuild/applicant/:applicantId/personal-details'); expect(C100Sequence[93].showInSection).toBe('c100'); - expect(C100Sequence[93].getNextStep(childrenMockData.session.userCase, childrenMockData)).toBe( - '/c100-rebuild/other-proceedings/current-previous-proceedings' + expect(C100Sequence[93].getNextStep(applicantMockRequest.session.userCase, applicantMockRequest)).toBe( + '/c100-rebuild/applicant/2732dd53-2e6c-46f9-88cd-08230e735b08/relationship-to-child/7483640e-0817-4ddc-b709-6723f7925474' ); - expect(C100Sequence[94].url).toBe('/c100-rebuild/applicant/:applicantId/personal-details'); + expect(C100Sequence[94].url).toBe('/c100-rebuild/applicant/:applicantId/relationship-to-child/:childId'); expect(C100Sequence[94].showInSection).toBe('c100'); expect(C100Sequence[94].getNextStep(applicantMockRequest.session.userCase, applicantMockRequest)).toBe( - '/c100-rebuild/applicant/2732dd53-2e6c-46f9-88cd-08230e735b08/relationship-to-child/7483640e-0817-4ddc-b709-6723f7925474' + '/c100-rebuild/applicant/2732dd53-2e6c-46f9-88cd-08230e735b08/relationship-to-child/7483640e-0817-4ddc-b709-6723f7925635' ); - expect(C100Sequence[95].url).toBe('/c100-rebuild/applicant/:applicantId/relationship-to-child/:childId'); + expect(C100Sequence[95].url).toBe('/c100-rebuild/applicant/:applicantId/contact-detail'); expect(C100Sequence[95].showInSection).toBe('c100'); expect(C100Sequence[95].getNextStep(applicantMockRequest.session.userCase, applicantMockRequest)).toBe( - '/c100-rebuild/applicant/2732dd53-2e6c-46f9-88cd-08230e735b08/relationship-to-child/7483640e-0817-4ddc-b709-6723f7925635' + '/c100-rebuild/applicant/2732dd53-2e6c-46f9-88cd-08230e735b08/contact-preference' ); - expect(C100Sequence[96].url).toBe('/c100-rebuild/applicant/:applicantId/contact-detail'); + expect(C100Sequence[96].url).toBe('/c100-rebuild/consent-order/upload'); expect(C100Sequence[96].showInSection).toBe('c100'); - expect(C100Sequence[96].getNextStep(applicantMockRequest.session.userCase, applicantMockRequest)).toBe( - '/c100-rebuild/applicant/2732dd53-2e6c-46f9-88cd-08230e735b08/contact-preference' - ); + expect(C100Sequence[96].getNextStep({})).toBe('/c100-rebuild/consent-order/upload-confirmation'); - expect(C100Sequence[97].url).toBe('/c100-rebuild/consent-order/upload'); + expect(C100Sequence[97].url).toBe('/c100-rebuild/consent-order/upload-confirmation'); expect(C100Sequence[97].showInSection).toBe('c100'); - expect(C100Sequence[97].getNextStep({})).toBe('/c100-rebuild/consent-order/upload-confirmation'); + expect(C100Sequence[97].getNextStep({})).toBe('/c100-rebuild/hearing-urgency/urgent'); - expect(C100Sequence[98].url).toBe('/c100-rebuild/consent-order/upload-confirmation'); + expect(C100Sequence[98].url).toBe('/c100-rebuild/check-your-answers'); expect(C100Sequence[98].showInSection).toBe('c100'); - expect(C100Sequence[98].getNextStep({})).toBe('/c100-rebuild/hearing-urgency/urgent'); + expect(C100Sequence[98].getNextStep({})).toBe('/c100-rebuild/check-your-answers'); - expect(C100Sequence[99].url).toBe('/c100-rebuild/check-your-answers'); + expect(C100Sequence[99].url).toBe('/c100-rebuild/applicant/:applicantId/contact-preference'); expect(C100Sequence[99].showInSection).toBe('c100'); - expect(C100Sequence[99].getNextStep({})).toBe('/c100-rebuild/check-your-answers'); - - expect(C100Sequence[100].url).toBe('/c100-rebuild/applicant/:applicantId/contact-preference'); - expect(C100Sequence[100].showInSection).toBe('c100'); - expect(C100Sequence[100].getNextStep(applicantMockRequest.session.userCase, applicantMockRequest)).toBe( + expect(C100Sequence[99].getNextStep(applicantMockRequest.session.userCase, applicantMockRequest)).toBe( '/c100-rebuild/applicant/2cd885a0-135e-45f1-85b7-aa46a1f78f46/confidentiality/details-know' ); - expect(C100Sequence[101].url).toBe('/c100-rebuild/:caseId/withdraw'); - expect(C100Sequence[101].showInSection).toBe('c100'); - expect(C100Sequence[101].getNextStep({})).toBe('/task-list/applicant'); + expect(C100Sequence[100].url).toBe('/c100-rebuild/:caseId/withdraw'); + expect(C100Sequence[100].showInSection).toBe('c100'); + expect(C100Sequence[100].getNextStep({})).toBe('/task-list/applicant'); - expect(C100Sequence[102].url).toBe('/c100-rebuild/withdraw/confirmation'); - expect(C100Sequence[102].showInSection).toBe('c100'); - expect(C100Sequence[102].getNextStep({})).toBe('/'); + expect(C100Sequence[101].url).toBe('/c100-rebuild/withdraw/confirmation'); + expect(C100Sequence[101].showInSection).toBe('c100'); + expect(C100Sequence[101].getNextStep({})).toBe('/'); }); }); diff --git a/src/main/steps/c100-rebuild/c100sequence.ts b/src/main/steps/c100-rebuild/c100sequence.ts index 9217016279..35e97fa446 100644 --- a/src/main/steps/c100-rebuild/c100sequence.ts +++ b/src/main/steps/c100-rebuild/c100sequence.ts @@ -35,7 +35,6 @@ import { C100_OTHER_PROCEEDINGS_ORDER_DETAILS, C100_OTHER_PROCEEDINGS_DOCUMENT_UPLOAD, C100_OTHER_PROCEEDINGS_DOCUMENT_SUMMARY, - C100_DOCUMENT_SUBMISSION, /** @MIAM MIAM */ C100_MIAM_UPLOAD_CONFIRMATION, @@ -362,11 +361,6 @@ export const C100Sequence: Step[] = [ showInSection: Sections.C100, getNextStep: () => C100_SCREENING_QUESTIONS_CONSENT_AGREEMENT, }, - { - url: C100_DOCUMENT_SUBMISSION, - showInSection: Sections.C100, - getNextStep: () => C100_DOCUMENT_SUBMISSION, - }, { url: C100_MIAM_MEDIATOR_DOCUMENT, showInSection: Sections.C100, diff --git a/src/main/steps/c100-rebuild/check-your-answers/common/htmlSelectors.test.ts b/src/main/steps/c100-rebuild/check-your-answers/common/htmlSelectors.test.ts index 28ae477643..3c24417fda 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/common/htmlSelectors.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/common/htmlSelectors.test.ts @@ -2,9 +2,8 @@ import { HTML } from './htmlSelectors'; const LIST_ITEM = '
  • '; const LIST_ITEM_END = '
  • '; -const UNORDER_LIST = '
      '; +const UNORDER_LIST = '
        '; const UNORDER_LIST_END = '
      '; -const NESTED_LIST_ITEM = '
    • '; const H4 = '

      '; const H3 = '

      '; const P = '

      '; @@ -14,7 +13,6 @@ const P_CLOSE = '

      '; const RULER = '
      '; const BOTTOM_PADDING_3 = '
      '; const BOTTOM_TOP_3 = '
      '; -const BOTTOM_PADDING_CLOSE = '
      '; const BREAK = '
      '; test('htmlSelectorpositivetest', () => { @@ -22,7 +20,6 @@ test('htmlSelectorpositivetest', () => { expect(HTML.LIST_ITEM_END).toBe(LIST_ITEM_END), expect(HTML.UNORDER_LIST).toBe(UNORDER_LIST), expect(HTML.UNORDER_LIST_END).toBe(UNORDER_LIST_END), - expect(HTML.NESTED_LIST_ITEM).toBe(NESTED_LIST_ITEM), expect(HTML.H4).toBe(H4), expect(HTML.H3).toBe(H3), expect(HTML.P).toBe(P), @@ -32,7 +29,6 @@ test('htmlSelectorpositivetest', () => { expect(HTML.RULER).toBe(RULER), expect(HTML.BOTTOM_PADDING_3).toBe(BOTTOM_PADDING_3), expect(HTML.BOTTOM_TOP_3).toBe(BOTTOM_TOP_3), - expect(HTML.BOTTOM_PADDING_CLOSE).toBe(BOTTOM_PADDING_CLOSE), expect(HTML.BREAK).toBe(BREAK); }); test('htmlSelectornegativetest', () => { @@ -40,7 +36,6 @@ test('htmlSelectornegativetest', () => { expect(HTML.LIST_ITEM_END).not.toBe(LIST_ITEM), expect(HTML.UNORDER_LIST).not.toBe(UNORDER_LIST_END), expect(HTML.UNORDER_LIST_END).not.toBe(UNORDER_LIST), - expect(HTML.NESTED_LIST_ITEM).not.toBe(LIST_ITEM_END), expect(HTML.H4).not.toBe(H4_CLOSE), expect(HTML.H3).not.toBe(H3_CLOSE), expect(HTML.P).not.toBe(P_CLOSE), @@ -50,6 +45,5 @@ test('htmlSelectornegativetest', () => { expect(HTML.RULER).not.toBe(BREAK), expect(HTML.BOTTOM_PADDING_3).not.toBe(BOTTOM_TOP_3), expect(HTML.BOTTOM_TOP_3).not.toBe(BOTTOM_PADDING_3), - expect(HTML.BOTTOM_PADDING_CLOSE).not.toBe(BOTTOM_TOP_3), expect(HTML.BREAK).not.toBe(RULER); }); diff --git a/src/main/steps/c100-rebuild/check-your-answers/common/htmlSelectors.ts b/src/main/steps/c100-rebuild/check-your-answers/common/htmlSelectors.ts index f3d5229ec3..cb517a10a1 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/common/htmlSelectors.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/common/htmlSelectors.ts @@ -1,11 +1,12 @@ export enum HTML { LIST_ITEM = '
    • ', LIST_ITEM_END = '
    • ', - UNORDER_LIST = '
        ', + UNORDER_LIST = '
          ', UNORDER_LIST_END = '
        ', - NESTED_LIST_ITEM = '
      • ', H1 = '

        ', H1_CLOSE = '

        ', + H2 = '

        ', + H2_CLOSE = '

        ', H4 = '

        ', H3 = '

        ', P = '

        ', @@ -15,13 +16,21 @@ export enum HTML { RULER = '


        ', BOTTOM_PADDING_3 = '
        ', BOTTOM_TOP_3 = '
        ', - BOTTOM_PADDING_CLOSE = '
        ', BREAK = '
        ', H4_SECTION_TITLE = '

        ', - STATEMENT_OF_TRUTH_H2 = "

        ", - STATEMENT_OF_TRUTH_H2_CLOSE = '

        ', + STATEMENT_OF_TRUTH_HEADING_H2 = "

        ", + STATEMENT_OF_TRUTH_H3 = "

        ", BOLD = '', BOLD_CLOSE = '', + DESCRIPTION_LIST = '
        ', + DESCRIPTION_LIST_END = '
        ', + DESCRIPTION_TERM_ELEMENT = '
        ', + DESCRIPTION_TERM_ELEMENT_END = '
        ', + ROW_START = '
        ', + ROW_START_NO_BORDER = '
        ', + ROW_END = '
        ', + DESCRIPTION_TERM_DETAIL = '
        ', + DESCRIPTION_TERM_DETAIL_END = '
        ', ERROR_MESSAGE_SPAN = '', SPAN_CLOSE = '', } diff --git a/src/main/steps/c100-rebuild/check-your-answers/content.test.ts b/src/main/steps/c100-rebuild/check-your-answers/content.test.ts index f2ddec6982..9432044eac 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/content.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/content.test.ts @@ -98,7 +98,7 @@ const enContent = { reasonAbleAdjustment: '[^^sectionNo^^]. Support you need during your case', //section 12 }, keys: { - wantingCourtToDo: 'Describe what you want the court to do regarding the children in this application', + wantingCourtToDo: 'describe what you want the court to do regarding the children in this application', qualifyForUrgentHearing: 'Does your situation qualify for an urgent first hearing?', askingNoHearing: 'Are you asking for a without notice hearing?', phoneNumber: 'Phone number', @@ -136,6 +136,7 @@ const enContent = { contactPrefernces: 'Contact preferences', child: 'Child', reasonForNotAttendingMiam: 'What are your reasons for not attending a MIAM?', + applicantLabel: 'Applicant', }, }; const cyContent = { @@ -257,6 +258,7 @@ const cyContent = { contactPrefernces: 'Dewisiadau cyswllt', child: 'Plant', reasonForNotAttendingMiam: 'Beth yw eich rhesymau dros beidio â mynychu MIAM?', + applicantLabel: 'Ceisydd', }, yesNo: { ydynTranslation: { @@ -528,7 +530,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '1. Location details', + title: '1. Location details', }, { rows: [ @@ -550,7 +552,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '2. Type of application', + title: '2. Type of application', }, { rows: [ @@ -571,7 +573,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '3. Legal representative details', + title: '3. Legal representative details', }, { rows: [ @@ -593,11 +595,12 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '4. Permission to make the application', + title: '4. Permission to make the application', }, { rows: [], - title: '5. MIAM: Mediation Information and Assessment Meeting', + title: + '5. MIAM: Mediation Information and Assessment Meeting', }, { rows: [ @@ -621,7 +624,8 @@ describe('Content.ts toggle test cases', () => { }, }, ], - title: 'MIAM attendance', + title: '', + subTitle: 'MIAM attendance', }, { rows: [ @@ -658,7 +662,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '6. Past and current proceeding', + title: '6. Past and current proceeding', }, { rows: [ @@ -696,7 +700,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: "7. What you're asking the court to decide", + title: '7. What you\'re asking the court to decide', }, { rows: [ @@ -733,15 +737,16 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '8. Hearing details', + title: '8. Hearing details', }, { rows: [], - title: '9. Details of the people in the application ', + title: '9. Details of the people in the application ', }, { rows: [], - title: "Children's details", + title: '', + subTitle: "Children's details", }, { rows: [ @@ -759,9 +764,7 @@ describe('Content.ts toggle test cases', () => { key: { text: 'Are any of the children known to social services?', }, - value: { - html: '
        ', - }, + value: {}, }, { actions: { @@ -780,7 +783,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Additional details about the children', + title: '', + subTitle: 'Additional details about the children', }, { rows: [ @@ -802,15 +806,18 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Other Children details', + title: '', + subTitle: 'Other Children details', }, { rows: [], - title: 'Details of the applicants', + title: '', + subTitle: 'Details of the applicants', }, { rows: [], - title: 'Details of the respondents', + title: '', + subTitle: 'Details of the respondents', }, { rows: [ @@ -831,7 +838,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Details of the other people in the application', + title: '', + subTitle: 'Details of the other people in the application', }, [], { @@ -873,11 +881,11 @@ describe('Content.ts toggle test cases', () => { text: 'Who are you concerned about?', }, value: { - html: '
        • Yourself
        ', + html: '
        • Yourself
        ', }, }, ], - title: '10. Safety concerns', + title: '10. Safety concerns', }, { rows: [ @@ -897,11 +905,12 @@ describe('Content.ts toggle test cases', () => { text: 'What type of behaviour have the children experienced or are at risk of experiencing?', }, value: { - html: '
          ', + html: '
            ', }, }, ], - title: 'Safety concerns: the children in the application ', + title: '', + subTitle: 'Safety concerns: the children in the application ', }, { rows: [ @@ -921,11 +930,12 @@ describe('Content.ts toggle test cases', () => { text: 'What type of behaviour have the children experienced or are at risk of experiencing?', }, value: { - html: '
                ', + html: '
                    ', }, }, ], - title: 'Safety concern: your safety', + title: '', + subTitle: 'Safety concern: your safety', }, { rows: [ @@ -1012,7 +1022,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Safety concern: other concerns that you have', + title: '', + subTitle: 'Safety concern: other concerns that you have', }, { rows: [ @@ -1031,7 +1042,7 @@ describe('Content.ts toggle test cases', () => { text: "Are the children's lives mainly based outside of England and Wales?", }, value: { - html: '

                    ', + html: '
                    ', }, }, { @@ -1050,7 +1061,7 @@ describe('Content.ts toggle test cases', () => { text: "Are the children's parents (or anyone significant to the children) mainly based outside of England and Wales?", }, value: { - html: '

                    ', + html: '
                    ', }, }, { @@ -1069,7 +1080,7 @@ describe('Content.ts toggle test cases', () => { text: 'Could another person in the application apply for a similar order in a country outside England or Wales?', }, value: { - html: '

                    ', + html: '
                    ', }, }, { @@ -1088,11 +1099,11 @@ describe('Content.ts toggle test cases', () => { text: 'Has another country asked (or been asked) for information or help for the children?', }, value: { - html: '

                    ', + html: '
                    ', }, }, ], - title: '11. International elements', + title: '11. International elements', }, { rows: [ @@ -1111,7 +1122,7 @@ describe('Content.ts toggle test cases', () => { text: 'Would you be able to take part in hearings by video and phone?', }, value: { - html: '
                      undefined
                    ', + html: '
                      undefined
                    ', }, }, { @@ -1129,7 +1140,7 @@ describe('Content.ts toggle test cases', () => { text: 'Do you have any language requirements?', }, value: { - html: '
                      undefined
                    ', + html: '
                      undefined
                    ', }, }, { @@ -1147,7 +1158,7 @@ describe('Content.ts toggle test cases', () => { text: 'Do you or the children need special arrangements at court?', }, value: { - html: '
                      undefined
                    ', + html: '
                      undefined
                    ', }, }, { @@ -1166,11 +1177,11 @@ describe('Content.ts toggle test cases', () => { text: 'Do you have a physical, mental or learning disability or health condition that means you need support during your case?', }, value: { - html: '
                      undefined
                    ', + html: '
                      undefined
                    ', }, }, ], - title: '12. Support you need during your case', + title: '12. Support you need during your case', }, { rows: [ @@ -1191,12 +1202,12 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '13. Help with Fees', + title: '13. Help with Fees', }, ]); }); - test.skip('en should generate sections properly for miam urgency', () => { + test('en should generate sections properly for miam urgency', () => { const generatedEnContent = generateContent({ ...commonContent, userCase: { @@ -1212,14 +1223,19 @@ describe('Content.ts toggle test cases', () => { { actions: { items: [ - { href: '/c100-rebuild/childaddress', text: 'Edit', visuallyHiddenText: 'Where do the children live?' }, + { + href: '/c100-rebuild/childaddress', + text: 'Edit', + attributes: {}, + visuallyHiddenText: 'Where do the children live?', + }, ], }, key: { text: 'Where do the children live?' }, value: {}, }, ], - title: '1. Location details', + title: '1. Location details', }, { rows: [ @@ -1229,6 +1245,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/consent-agreement', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Do you have a written agreement with the other people in the case that you want the court to review?', }, @@ -1240,7 +1257,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '2. Type of application', + title: '2. Type of application', }, { rows: [ @@ -1250,6 +1267,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/legal-representation', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Will you be using a legal representative in these proceedings?', }, ], @@ -1258,7 +1276,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '3. Legal representative details', + title: '3. Legal representative details', }, { rows: [ @@ -1268,6 +1286,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/permission', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Is there any reason that you would need permission from the court to make this application?', }, @@ -1279,9 +1298,13 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '4. Permission to make the application', + title: '4. Permission to make the application', + }, + { + rows: [], + title: + '5. MIAM: Mediation Information and Assessment Meeting', }, - { rows: [], title: '5. MIAM: Mediation Information and Assessment Meeting' }, { rows: [ { @@ -1290,6 +1313,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/miam/other-proceedings', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Are the children involved in any emergency protection, care or supervision proceedings (or have they been)? ', }, @@ -1301,7 +1325,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'MIAM attendance', + title: '', + subTitle: 'MIAM attendance', }, { rows: [ @@ -1311,6 +1336,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/miam/general-reasons', text: 'Edit', + attributes: {}, visuallyHiddenText: 'What are your reasons for not attending a MIAM?', }, ], @@ -1319,7 +1345,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'MIAM exemption', + title: '', + subTitle: 'MIAM exemption', }, { rows: [ @@ -1329,6 +1356,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/hearing-urgency/urgent', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Does your situation qualify for an urgent first hearing?', }, ], @@ -1342,6 +1370,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/hearing-without-notice/hearing-part1', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Are you asking for a without notice hearing?', }, ], @@ -1350,7 +1379,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '6. Hearing details', + title: '6. Hearing details', }, { rows: [ @@ -1360,6 +1389,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/typeoforder/select-courtorder', text: 'Edit', + attributes: {}, visuallyHiddenText: 'What are you asking the court to do?', }, ], @@ -1373,6 +1403,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/typeoforder/shortstatement', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Describe what you want the court to do regarding the children in this application', }, @@ -1382,10 +1413,13 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: "7. What you're asking the court to decide", + title: '7. What you\'re asking the court to decide', }, - { rows: [], title: '8. Details of the people in the application ' }, - { rows: [], title: "Children's details" }, + { + rows: [], + title: '8. Details of the people in the application ', + }, + { rows: [], title: '', subTitle: "Children's details" }, { rows: [ { @@ -1394,12 +1428,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/further-information', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Are any of the children known to social services?', }, ], }, key: { text: 'Are any of the children known to social services?' }, - value: { html: '
                    ' }, + value: {}, }, { actions: { @@ -1407,6 +1442,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/further-information', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Are any of the children the subject of a child protection plan?', }, ], @@ -1415,7 +1451,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Additional details about the children', + title: '', + subTitle: 'Additional details about the children', }, { rows: [ @@ -1425,6 +1462,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/has-other-children', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Do you or any respondents have other children who are not part of this application?', }, @@ -1434,10 +1472,11 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Other Children details', + title: '', + subTitle: 'Other Children details', }, - { rows: [], title: 'Details of the applicants' }, - { rows: [], title: 'Details of the respondents' }, + { rows: [], title: '', subTitle: 'Details of the applicants' }, + { rows: [], title: '', subTitle: 'Details of the respondents' }, { rows: [ { @@ -1446,6 +1485,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-person-details/other-person-check', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Is there anyone else who should know about your application?', }, ], @@ -1454,7 +1494,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Details of the other people in the application', + title: '', + subTitle: 'Details of the other people in the application', }, [], { rows: [], title: 'Where the children live' }, @@ -1466,6 +1507,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-proceedings/current-previous-proceedings', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Have the children been involved in a court case?', }, ], @@ -1479,6 +1521,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-proceedings/current-previous-proceedings', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Have you had a court order made for your protection?', }, ], @@ -1487,7 +1530,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '9. Past and current proceeding', + title: '9. Past and current proceeding', }, { rows: [ @@ -1497,6 +1540,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/safety-concerns/concerns-for-safety', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Do you have any concerns for your safety or the safety of the children?', }, ], @@ -1505,7 +1549,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '10. Safety concerns', + title: '10. Safety concerns', }, { rows: [ @@ -1515,12 +1559,15 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/start', text: 'Edit', + attributes: {}, visuallyHiddenText: "Are the children's lives mainly based outside of England and Wales?", }, ], }, key: { text: "Are the children's lives mainly based outside of England and Wales?" }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -1528,6 +1575,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/parents', text: 'Edit', + attributes: {}, visuallyHiddenText: "Are the children's parents (or anyone significant to the children) mainly based outside of England and Wales?", }, @@ -1536,7 +1584,9 @@ describe('Content.ts toggle test cases', () => { key: { text: "Are the children's parents (or anyone significant to the children) mainly based outside of England and Wales?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -1544,6 +1594,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/jurisdiction', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Could another person in the application apply for a similar order in a country outside England or Wales?', }, @@ -1552,7 +1603,9 @@ describe('Content.ts toggle test cases', () => { key: { text: 'Could another person in the application apply for a similar order in a country outside England or Wales?', }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -1560,16 +1613,19 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/request', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Has another country asked (or been asked) for information or help for the children?', }, ], }, key: { text: 'Has another country asked (or been asked) for information or help for the children?' }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, ], - title: '11. International elements', + title: '11. International elements', }, { rows: [ @@ -1579,12 +1635,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/attending-court', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Would you be able to take part in hearings by video and phone?', }, ], }, key: { text: 'Would you be able to take part in hearings by video and phone?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -1592,12 +1649,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/language-requirements', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Do you have any language requirements?', }, ], }, key: { text: 'Do you have any language requirements?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -1605,12 +1663,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/special-arrangements', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Do you or the children need special arrangements at court?', }, ], }, key: { text: 'Do you or the children need special arrangements at court?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -1618,6 +1677,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/support-during-your-case', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Do you have a physical, mental or learning disability or health condition that means you need support during your case?', }, @@ -1626,10 +1686,10 @@ describe('Content.ts toggle test cases', () => { key: { text: 'Do you have a physical, mental or learning disability or health condition that means you need support during your case?', }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, ], - title: '12. Support you need during your case', + title: '12. Support you need during your case', }, { rows: [ @@ -1639,6 +1699,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/help-with-fees/need-help-with-fees', text: 'Edit', + attributes: {}, visuallyHiddenText: 'Do you need help with paying the fee for this application?', }, ], @@ -1647,12 +1708,12 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '13. Help with Fees', + title: '13. Help with Fees', }, ]); }); - test.skip('cy should generate sections properly for miam urgency', () => { + test('cy should generate sections properly for miam urgency', () => { const generatedCyContent = generateContent({ ...commonContent, userCase: { @@ -1670,14 +1731,19 @@ describe('Content.ts toggle test cases', () => { { actions: { items: [ - { href: '/c100-rebuild/childaddress', text: ' Golygu', visuallyHiddenText: "Ble mae'r plant yn byw?" }, + { + href: '/c100-rebuild/childaddress', + text: ' Golygu', + attributes: {}, + visuallyHiddenText: "Ble mae'r plant yn byw?", + }, ], }, key: { text: "Ble mae'r plant yn byw?" }, value: {}, }, ], - title: '1. Manylion lleoliad', + title: '1. Manylion lleoliad', }, { rows: [ @@ -1687,6 +1753,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/consent-agreement', text: ' Golygu', + attributes: {}, visuallyHiddenText: "A oes gennych chi gytundeb ysgrifenedig gyda'r bobl eraill yn yr achos, yr ydych am i'r llys ei adolygu?", }, @@ -1698,7 +1765,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '2. Math o gais', + title: '2. Math o gais', }, { rows: [ @@ -1708,6 +1775,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/legal-representation', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A fyddwch yn defnyddio cynrychiolydd cyfreithiol yn yr achos hwn?', }, ], @@ -1716,7 +1784,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '3. Manylion cynrychiolydd cyfreithiol', + title: '3. Manylion cynrychiolydd cyfreithiol', }, { rows: [ @@ -1726,6 +1794,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/permission', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes yna unrhyw reswm pam y byddech angen caniatâd gan y llys i wneud y cais hwn?', }, @@ -1735,9 +1804,12 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '4. Caniatâd i wneud cais', + title: '4. Caniatâd i wneud cais', + }, + { + rows: [], + title: '5. MIAM: Cyfarfod Asesu a Gwybodaeth am Gyfryngu', }, - { rows: [], title: '5. MIAM: Cyfarfod Asesu a Gwybodaeth am Gyfryngu' }, { rows: [ { @@ -1746,6 +1818,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/miam/other-proceedings', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A yw’r plant ynghlwm ag unrhyw achos diogelu, gofal neu oruchwyliaeth brys (neu a fuont ynghlwm ag achosion o’r fath)?', }, @@ -1757,7 +1830,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Mynychu MIAM', + title: '', + subTitle: 'Mynychu MIAM', }, { rows: [ @@ -1767,6 +1841,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/miam/general-reasons', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'Beth yw eich rhesymau dros beidio â mynychu MIAM?', }, ], @@ -1775,7 +1850,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Esemptiad MIAM', + title: '', + subTitle: 'Esemptiad MIAM', }, { rows: [ @@ -1785,6 +1861,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/hearing-urgency/urgent', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'Ydy eich sefyllfa’n gymwys i gael gwrandawiad cyntaf brys?', }, ], @@ -1798,6 +1875,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/hearing-without-notice/hearing-part1', text: ' Golygu', + attributes: {}, visuallyHiddenText: ' Ydych chi’n gofyn am wrandawiad heb rybudd?', }, ], @@ -1806,7 +1884,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '6. Manylion y gwrandawiad', + title: '6. Manylion y gwrandawiad', }, { rows: [ @@ -1816,6 +1894,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/typeoforder/select-courtorder', text: ' Golygu', + attributes: {}, visuallyHiddenText: "Beth ydych chi'n gofyn i'r llys ei wneud?", }, ], @@ -1829,6 +1908,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/typeoforder/shortstatement', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'Disgrifiwch yr hyn rydych chi eisiau i’r llys ei wneud o ran y plant yn y cais hwn', }, @@ -1838,10 +1918,10 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '7. Beth yr ydych chi’n gofyn i’r llys ei benderfynu', + title: '7. Beth yr ydych chi’n gofyn i’r llys ei benderfynu', }, - { rows: [], title: '8. Manylion y bobl yn y cais' }, - { rows: [], title: 'Manylion y plant' }, + { rows: [], title: '8. Manylion y bobl yn y cais' }, + { rows: [], title: '', subTitle: 'Manylion y plant' }, { rows: [ { @@ -1850,12 +1930,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/further-information', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A yw gwasanaethau cymdeithasol yn gyfarwydd ag unrhyw un o’r plant?', }, ], }, key: { text: 'A yw gwasanaethau cymdeithasol yn gyfarwydd ag unrhyw un o’r plant?' }, - value: { html: '
                    ' }, + value: {}, }, { actions: { @@ -1863,6 +1944,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/further-information', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A yw unrhyw un o’r plant yn destun cynllun amddiffyn plentyn?', }, ], @@ -1871,7 +1953,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion ychwanegol am y plant', + title: '', + subTitle: 'Manylion ychwanegol am y plant', }, { rows: [ @@ -1881,6 +1964,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/has-other-children', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gennych chi neu unrhyw atebwyr blant eraill nad ydynt yn rhan o’r cais hwn?', }, @@ -1890,10 +1974,11 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion plant eraill', + title: '', + subTitle: 'Manylion plant eraill', }, - { rows: [], title: 'Manylion y ceiswyr' }, - { rows: [], title: 'Manylion yr atebwyr' }, + { rows: [], title: '', subTitle: 'Manylion y ceiswyr' }, + { rows: [], title: '', subTitle: 'Manylion yr atebwyr' }, { rows: [ { @@ -1902,6 +1987,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-person-details/other-person-check', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes unrhyw un arall y dylai wybod am eich cais?', }, ], @@ -1910,7 +1996,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion y bobl eraill yn y cais', + title: '', + subTitle: 'Manylion y bobl eraill yn y cais', }, [], { rows: [], title: 'Ble mae’r plant yn byw' }, @@ -1922,6 +2009,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-proceedings/current-previous-proceedings', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'Ydy’r plant wedi bod ynghlwm ag achos llys?', }, ], @@ -1935,6 +2023,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-proceedings/current-previous-proceedings', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gorchymyn llys wedi ei wneud ar eich cyfer er mwyn eich diogelu chi?', }, ], @@ -1943,7 +2032,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '9. Achosion yn y gorffennol ac achosion cyfredol', + title: '9. Achosion yn y gorffennol ac achosion cyfredol', }, { rows: [ @@ -1953,6 +2042,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/safety-concerns/concerns-for-safety', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gennych chi unrhyw bryderon am eich diogelwch chi neu ddiogelwch y plant?', }, ], @@ -1961,7 +2051,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '10. Pryderon am ddiogelwch', + title: '10. Pryderon am ddiogelwch', }, { rows: [ @@ -1971,12 +2061,15 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/start', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A yw’r plant yn byw yn bennaf y tu allan i Gymru a Lloegr?', }, ], }, key: { text: 'A yw’r plant yn byw yn bennaf y tu allan i Gymru a Lloegr?' }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -1984,6 +2077,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/parents', text: ' Golygu', + attributes: {}, visuallyHiddenText: "A yw rhieni’r plant (neu unrhyw un arwyddocaol i'r plant) wedi eu lleoli yn bennaf y tu allan i Gymru a Lloegr?", }, @@ -1992,7 +2086,9 @@ describe('Content.ts toggle test cases', () => { key: { text: "A yw rhieni’r plant (neu unrhyw un arwyddocaol i'r plant) wedi eu lleoli yn bennaf y tu allan i Gymru a Lloegr?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -2000,6 +2096,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/jurisdiction', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A allai unigolyn arall yn y cais wneud cais am orchymyn tebyg mewn gwlad y tu allan i Gymru neu Loegr? ', }, @@ -2008,7 +2105,9 @@ describe('Content.ts toggle test cases', () => { key: { text: 'A allai unigolyn arall yn y cais wneud cais am orchymyn tebyg mewn gwlad y tu allan i Gymru neu Loegr? ', }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -2016,6 +2115,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/request', text: ' Golygu', + attributes: {}, visuallyHiddenText: "A oes gwlad arall wedi gofyn (neu a ofynnwyd i wlad arall) am wybodaeth neu help i'r plant?", }, @@ -2024,10 +2124,12 @@ describe('Content.ts toggle test cases', () => { key: { text: "A oes gwlad arall wedi gofyn (neu a ofynnwyd i wlad arall) am wybodaeth neu help i'r plant?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, ], - title: '11. Elfennau rhyngwladol', + title: '11. Elfennau rhyngwladol', }, { rows: [ @@ -2037,12 +2139,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/attending-court', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A fyddech chi’n gallu cymryd rhan mewn gwrandawiadau drwy fideo a dros y ffôn?', }, ], }, key: { text: 'A fyddech chi’n gallu cymryd rhan mewn gwrandawiadau drwy fideo a dros y ffôn?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2050,12 +2153,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/language-requirements', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gennych chi unrhyw ofynion ieithyddol?', }, ], }, key: { text: 'A oes gennych chi unrhyw ofynion ieithyddol?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2063,12 +2167,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/special-arrangements', text: ' Golygu', + attributes: {}, visuallyHiddenText: "Ydych chi neu'r plant angen trefniadau arbennig yn y llys?", }, ], }, key: { text: "Ydych chi neu'r plant angen trefniadau arbennig yn y llys?" }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2076,6 +2181,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/support-during-your-case', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gennych anabledd corfforol, meddyliol neu addysgol neu gyflwr iechyd sy’n golygu bod angen cymorth arnoch yn ystod eich achos?', }, @@ -2084,10 +2190,11 @@ describe('Content.ts toggle test cases', () => { key: { text: 'A oes gennych anabledd corfforol, meddyliol neu addysgol neu gyflwr iechyd sy’n golygu bod angen cymorth arnoch yn ystod eich achos?', }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, ], - title: '12. Cefnogaeth y mae arnoch ei hangen yn ystod eich achos', + title: + '12. Cefnogaeth y mae arnoch ei hangen yn ystod eich achos', }, { rows: [ @@ -2097,6 +2204,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/help-with-fees/need-help-with-fees', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A ydych angen help i dalu’r ffi am wneud y cais hwn?', }, ], @@ -2105,7 +2213,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '13. Help i dalu ffioedd', + title: '13. Help i dalu ffioedd', }, ]); }); @@ -2133,7 +2241,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '1. Manylion lleoliad', + title: '1. Manylion lleoliad', }, { rows: [ @@ -2155,7 +2263,7 @@ describe('Content.ts toggle test cases', () => { value: { text: 'Oes' }, }, ], - title: '2. Math o gais', + title: '2. Math o gais', }, { rows: [ @@ -2189,7 +2297,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '3. Beth yr ydych chi’n gofyn i’r llys ei benderfynu', + title: '3. Beth yr ydych chi’n gofyn i’r llys ei benderfynu', }, { rows: [ @@ -2222,10 +2330,10 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '4. Manylion y gwrandawiad', + title: '4. Manylion y gwrandawiad', }, - { rows: [], title: '5. Manylion y bobl yn y cais' }, - { rows: [], title: 'Manylion y plant' }, + { rows: [], title: '5. Manylion y bobl yn y cais' }, + { rows: [], title: '', subTitle: 'Manylion y plant' }, { rows: [ { @@ -2240,7 +2348,7 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: 'A yw gwasanaethau cymdeithasol yn gyfarwydd ag unrhyw un o’r plant?' }, - value: { html: '
                    ' }, + value: {}, }, { actions: { @@ -2257,7 +2365,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion ychwanegol am y plant', + title: '', + subTitle: 'Manylion ychwanegol am y plant', }, { rows: [ @@ -2277,10 +2386,11 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion plant eraill', + title: '', + subTitle: 'Manylion plant eraill', }, - { rows: [], title: 'Manylion y ceiswyr' }, - { rows: [], title: 'Manylion yr atebwyr' }, + { rows: [], title: '', subTitle: 'Manylion y ceiswyr' }, + { rows: [], title: '', subTitle: 'Manylion yr atebwyr' }, { rows: [ { @@ -2298,7 +2408,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion y bobl eraill yn y cais', + title: '', + subTitle: 'Manylion y bobl eraill yn y cais', }, [], { rows: [], title: 'Ble mae’r plant yn byw' }, @@ -2333,7 +2444,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '6. Achosion yn y gorffennol ac achosion cyfredol', + title: '6. Achosion yn y gorffennol ac achosion cyfredol', }, { rows: [ @@ -2352,7 +2463,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '7. Pryderon am ddiogelwch', + title: '7. Pryderon am ddiogelwch', }, { rows: [ @@ -2368,7 +2479,9 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: 'A yw’r plant yn byw yn bennaf y tu allan i Gymru a Lloegr?' }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -2385,7 +2498,9 @@ describe('Content.ts toggle test cases', () => { key: { text: "A yw rhieni’r plant (neu unrhyw un arwyddocaol i'r plant) wedi eu lleoli yn bennaf y tu allan i Gymru a Lloegr?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -2402,7 +2517,9 @@ describe('Content.ts toggle test cases', () => { key: { text: 'A allai unigolyn arall yn y cais wneud cais am orchymyn tebyg mewn gwlad y tu allan i Gymru neu Loegr? ', }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -2419,10 +2536,12 @@ describe('Content.ts toggle test cases', () => { key: { text: "A oes gwlad arall wedi gofyn (neu a ofynnwyd i wlad arall) am wybodaeth neu help i'r plant?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, ], - title: '8. Elfennau rhyngwladol', + title: '8. Elfennau rhyngwladol', }, { rows: [ @@ -2438,7 +2557,7 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: 'A fyddech chi’n gallu cymryd rhan mewn gwrandawiadau drwy fideo a dros y ffôn?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2452,7 +2571,7 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: 'A oes gennych chi unrhyw ofynion ieithyddol?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2466,7 +2585,7 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: "Ydych chi neu'r plant angen trefniadau arbennig yn y llys?" }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2483,10 +2602,11 @@ describe('Content.ts toggle test cases', () => { key: { text: 'A oes gennych anabledd corfforol, meddyliol neu addysgol neu gyflwr iechyd sy’n golygu bod angen cymorth arnoch yn ystod eich achos?', }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, ], - title: '9. Cefnogaeth y mae arnoch ei hangen yn ystod eich achos', + title: + '9. Cefnogaeth y mae arnoch ei hangen yn ystod eich achos', }, { rows: [ @@ -2505,7 +2625,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '10. Help i dalu ffioedd', + title: '10. Help i dalu ffioedd', }, ]); }); @@ -2537,7 +2657,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '1. Manylion lleoliad', + title: '1. Manylion lleoliad', }, { rows: [ @@ -2559,7 +2679,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '2. Math o gais', + title: '2. Math o gais', }, { rows: [ @@ -2578,7 +2698,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '3. Manylion cynrychiolydd cyfreithiol', + title: '3. Manylion cynrychiolydd cyfreithiol', }, { rows: [ @@ -2598,9 +2718,12 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '4. Caniatâd i wneud cais', + title: '4. Caniatâd i wneud cais', + }, + { + rows: [], + title: '5. MIAM: Cyfarfod Asesu a Gwybodaeth am Gyfryngu', }, - { rows: [], title: '5. MIAM: Cyfarfod Asesu a Gwybodaeth am Gyfryngu' }, { rows: [ { @@ -2621,7 +2744,8 @@ describe('Content.ts toggle test cases', () => { value: { text: 'Ydyn' }, }, ], - title: 'Mynychu MIAM', + title: '', + subTitle: 'Mynychu MIAM', }, { rows: [ @@ -2654,7 +2778,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '6. Achosion yn y gorffennol ac achosion cyfredol', + title: '6. Achosion yn y gorffennol ac achosion cyfredol', }, { rows: [ @@ -2688,7 +2812,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '7. Beth yr ydych chi’n gofyn i’r llys ei benderfynu', + title: '7. Beth yr ydych chi’n gofyn i’r llys ei benderfynu', }, { rows: [ @@ -2721,10 +2845,10 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '8. Manylion y gwrandawiad', + title: '8. Manylion y gwrandawiad', }, - { rows: [], title: '9. Manylion y bobl yn y cais' }, - { rows: [], title: 'Manylion y plant' }, + { rows: [], title: '9. Manylion y bobl yn y cais' }, + { rows: [], title: '', subTitle: 'Manylion y plant' }, { rows: [ { @@ -2739,7 +2863,7 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: 'A yw gwasanaethau cymdeithasol yn gyfarwydd ag unrhyw un o’r plant?' }, - value: { html: '
                    ' }, + value: {}, }, { actions: { @@ -2756,7 +2880,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion ychwanegol am y plant', + title: '', + subTitle: 'Manylion ychwanegol am y plant', }, { rows: [ @@ -2776,10 +2901,11 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion plant eraill', + title: '', + subTitle: 'Manylion plant eraill', }, - { rows: [], title: 'Manylion y ceiswyr' }, - { rows: [], title: 'Manylion yr atebwyr' }, + { rows: [], title: '', subTitle: 'Manylion y ceiswyr' }, + { rows: [], title: '', subTitle: 'Manylion yr atebwyr' }, { rows: [ { @@ -2797,7 +2923,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion y bobl eraill yn y cais', + title: '', + subTitle: 'Manylion y bobl eraill yn y cais', }, [], { rows: [], title: 'Ble mae’r plant yn byw' }, @@ -2818,7 +2945,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '10. Pryderon am ddiogelwch', + title: '10. Pryderon am ddiogelwch', }, { rows: [ @@ -2834,7 +2961,9 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: 'A yw’r plant yn byw yn bennaf y tu allan i Gymru a Lloegr?' }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -2851,7 +2980,9 @@ describe('Content.ts toggle test cases', () => { key: { text: "A yw rhieni’r plant (neu unrhyw un arwyddocaol i'r plant) wedi eu lleoli yn bennaf y tu allan i Gymru a Lloegr?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -2868,7 +2999,9 @@ describe('Content.ts toggle test cases', () => { key: { text: 'A allai unigolyn arall yn y cais wneud cais am orchymyn tebyg mewn gwlad y tu allan i Gymru neu Loegr? ', }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -2885,10 +3018,12 @@ describe('Content.ts toggle test cases', () => { key: { text: "A oes gwlad arall wedi gofyn (neu a ofynnwyd i wlad arall) am wybodaeth neu help i'r plant?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, ], - title: '11. Elfennau rhyngwladol', + title: '11. Elfennau rhyngwladol', }, { rows: [ @@ -2904,7 +3039,7 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: 'A fyddech chi’n gallu cymryd rhan mewn gwrandawiadau drwy fideo a dros y ffôn?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2918,7 +3053,7 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: 'A oes gennych chi unrhyw ofynion ieithyddol?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2932,7 +3067,7 @@ describe('Content.ts toggle test cases', () => { ], }, key: { text: "Ydych chi neu'r plant angen trefniadau arbennig yn y llys?" }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -2949,10 +3084,11 @@ describe('Content.ts toggle test cases', () => { key: { text: 'A oes gennych anabledd corfforol, meddyliol neu addysgol neu gyflwr iechyd sy’n golygu bod angen cymorth arnoch yn ystod eich achos?', }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, ], - title: '12. Cefnogaeth y mae arnoch ei hangen yn ystod eich achos', + title: + '12. Cefnogaeth y mae arnoch ei hangen yn ystod eich achos', }, { rows: [ @@ -2971,12 +3107,12 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '13. Help i dalu ffioedd', + title: '13. Help i dalu ffioedd', }, ]); }); - test.skip('cy should generate sections properly for other scenarios', () => { + test('cy should generate sections properly for other scenarios', () => { const generatedEnContent = generateContent({ ...commonContent, language: 'cy', @@ -2992,14 +3128,19 @@ describe('Content.ts toggle test cases', () => { { actions: { items: [ - { href: '/c100-rebuild/childaddress', text: ' Golygu', visuallyHiddenText: "Ble mae'r plant yn byw?" }, + { + href: '/c100-rebuild/childaddress', + text: ' Golygu', + attributes: {}, + visuallyHiddenText: "Ble mae'r plant yn byw?", + }, ], }, key: { text: "Ble mae'r plant yn byw?" }, value: {}, }, ], - title: '1. Manylion lleoliad', + title: '1. Manylion lleoliad', }, { rows: [ @@ -3009,6 +3150,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/consent-agreement', text: ' Golygu', + attributes: {}, visuallyHiddenText: "A oes gennych chi gytundeb ysgrifenedig gyda'r bobl eraill yn yr achos, yr ydych am i'r llys ei adolygu?", }, @@ -3020,7 +3162,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '2. Math o gais', + title: '2. Math o gais', }, { rows: [ @@ -3030,6 +3172,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/legal-representation', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A fyddwch yn defnyddio cynrychiolydd cyfreithiol yn yr achos hwn?', }, ], @@ -3038,7 +3181,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '3. Manylion cynrychiolydd cyfreithiol', + title: '3. Manylion cynrychiolydd cyfreithiol', }, { rows: [ @@ -3048,6 +3191,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/screening-questions/permission', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes yna unrhyw reswm pam y byddech angen caniatâd gan y llys i wneud y cais hwn?', }, @@ -3057,9 +3201,12 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '4. Caniatâd i wneud cais', + title: '4. Caniatâd i wneud cais', + }, + { + rows: [], + title: '5. MIAM: Cyfarfod Asesu a Gwybodaeth am Gyfryngu', }, - { rows: [], title: '5. MIAM: Cyfarfod Asesu a Gwybodaeth am Gyfryngu' }, { rows: [ { @@ -3068,6 +3215,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/miam/other-proceedings', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A yw’r plant ynghlwm ag unrhyw achos diogelu, gofal neu oruchwyliaeth brys (neu a fuont ynghlwm ag achosion o’r fath)?', }, @@ -3079,7 +3227,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Mynychu MIAM', + title: '', + subTitle: 'Mynychu MIAM', }, { rows: [ @@ -3089,6 +3238,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/miam/general-reasons', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'Beth yw eich rhesymau dros beidio â mynychu MIAM?', }, ], @@ -3097,7 +3247,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Esemptiad MIAM', + title: '', + subTitle: 'Esemptiad MIAM', }, { rows: [ @@ -3107,6 +3258,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/typeoforder/select-courtorder', text: ' Golygu', + attributes: {}, visuallyHiddenText: "Beth ydych chi'n gofyn i'r llys ei wneud?", }, ], @@ -3120,6 +3272,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/typeoforder/shortstatement', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'Disgrifiwch yr hyn rydych chi eisiau i’r llys ei wneud o ran y plant yn y cais hwn', }, @@ -3129,7 +3282,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '6. Beth yr ydych chi’n gofyn i’r llys ei benderfynu', + title: '6. Beth yr ydych chi’n gofyn i’r llys ei benderfynu', }, { rows: [ @@ -3139,6 +3292,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/hearing-urgency/urgent', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'Ydy eich sefyllfa’n gymwys i gael gwrandawiad cyntaf brys?', }, ], @@ -3152,6 +3306,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/hearing-without-notice/hearing-part1', text: ' Golygu', + attributes: {}, visuallyHiddenText: ' Ydych chi’n gofyn am wrandawiad heb rybudd?', }, ], @@ -3160,10 +3315,10 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '7. Manylion y gwrandawiad', + title: '7. Manylion y gwrandawiad', }, - { rows: [], title: '8. Manylion y bobl yn y cais' }, - { rows: [], title: 'Manylion y plant' }, + { rows: [], title: '8. Manylion y bobl yn y cais' }, + { rows: [], title: '', subTitle: 'Manylion y plant' }, { rows: [ { @@ -3172,12 +3327,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/further-information', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A yw gwasanaethau cymdeithasol yn gyfarwydd ag unrhyw un o’r plant?', }, ], }, key: { text: 'A yw gwasanaethau cymdeithasol yn gyfarwydd ag unrhyw un o’r plant?' }, - value: { html: '
                    ' }, + value: {}, }, { actions: { @@ -3185,6 +3341,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/further-information', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A yw unrhyw un o’r plant yn destun cynllun amddiffyn plentyn?', }, ], @@ -3193,7 +3350,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion ychwanegol am y plant', + title: '', + subTitle: 'Manylion ychwanegol am y plant', }, { rows: [ @@ -3203,6 +3361,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/child-details/has-other-children', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gennych chi neu unrhyw atebwyr blant eraill nad ydynt yn rhan o’r cais hwn?', }, @@ -3212,10 +3371,11 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion plant eraill', + title: '', + subTitle: 'Manylion plant eraill', }, - { rows: [], title: 'Manylion y ceiswyr' }, - { rows: [], title: 'Manylion yr atebwyr' }, + { rows: [], title: '', subTitle: 'Manylion y ceiswyr' }, + { rows: [], title: '', subTitle: 'Manylion yr atebwyr' }, { rows: [ { @@ -3224,6 +3384,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-person-details/other-person-check', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes unrhyw un arall y dylai wybod am eich cais?', }, ], @@ -3232,7 +3393,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Manylion y bobl eraill yn y cais', + title: '', + subTitle: 'Manylion y bobl eraill yn y cais', }, [], { rows: [], title: 'Ble mae’r plant yn byw' }, @@ -3244,6 +3406,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-proceedings/current-previous-proceedings', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'Ydy’r plant wedi bod ynghlwm ag achos llys?', }, ], @@ -3257,6 +3420,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/other-proceedings/current-previous-proceedings', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gorchymyn llys wedi ei wneud ar eich cyfer er mwyn eich diogelu chi?', }, ], @@ -3265,7 +3429,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '9. Achosion yn y gorffennol ac achosion cyfredol', + title: '9. Achosion yn y gorffennol ac achosion cyfredol', }, { rows: [ @@ -3275,6 +3439,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/safety-concerns/concerns-for-safety', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gennych chi unrhyw bryderon am eich diogelwch chi neu ddiogelwch y plant?', }, ], @@ -3283,7 +3448,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '10. Pryderon am ddiogelwch', + title: '10. Pryderon am ddiogelwch', }, { rows: [ @@ -3293,12 +3458,15 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/start', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A yw’r plant yn byw yn bennaf y tu allan i Gymru a Lloegr?', }, ], }, key: { text: 'A yw’r plant yn byw yn bennaf y tu allan i Gymru a Lloegr?' }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -3306,6 +3474,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/parents', text: ' Golygu', + attributes: {}, visuallyHiddenText: "A yw rhieni’r plant (neu unrhyw un arwyddocaol i'r plant) wedi eu lleoli yn bennaf y tu allan i Gymru a Lloegr?", }, @@ -3314,7 +3483,9 @@ describe('Content.ts toggle test cases', () => { key: { text: "A yw rhieni’r plant (neu unrhyw un arwyddocaol i'r plant) wedi eu lleoli yn bennaf y tu allan i Gymru a Lloegr?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -3322,6 +3493,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/jurisdiction', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A allai unigolyn arall yn y cais wneud cais am orchymyn tebyg mewn gwlad y tu allan i Gymru neu Loegr? ', }, @@ -3330,7 +3502,9 @@ describe('Content.ts toggle test cases', () => { key: { text: 'A allai unigolyn arall yn y cais wneud cais am orchymyn tebyg mewn gwlad y tu allan i Gymru neu Loegr? ', }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, { actions: { @@ -3338,6 +3512,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/international-elements/request', text: ' Golygu', + attributes: {}, visuallyHiddenText: "A oes gwlad arall wedi gofyn (neu a ofynnwyd i wlad arall) am wybodaeth neu help i'r plant?", }, @@ -3346,10 +3521,12 @@ describe('Content.ts toggle test cases', () => { key: { text: "A oes gwlad arall wedi gofyn (neu a ofynnwyd i wlad arall) am wybodaeth neu help i'r plant?", }, - value: { html: '

                    ' }, + value: { + html: '
                    ', + }, }, ], - title: '11. Elfennau rhyngwladol', + title: '11. Elfennau rhyngwladol', }, { rows: [ @@ -3359,12 +3536,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/attending-court', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A fyddech chi’n gallu cymryd rhan mewn gwrandawiadau drwy fideo a dros y ffôn?', }, ], }, key: { text: 'A fyddech chi’n gallu cymryd rhan mewn gwrandawiadau drwy fideo a dros y ffôn?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -3372,12 +3550,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/language-requirements', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gennych chi unrhyw ofynion ieithyddol?', }, ], }, key: { text: 'A oes gennych chi unrhyw ofynion ieithyddol?' }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -3385,12 +3564,13 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/special-arrangements', text: ' Golygu', + attributes: {}, visuallyHiddenText: "Ydych chi neu'r plant angen trefniadau arbennig yn y llys?", }, ], }, key: { text: "Ydych chi neu'r plant angen trefniadau arbennig yn y llys?" }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, { actions: { @@ -3398,6 +3578,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/reasonable-adjustments/support-during-your-case', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A oes gennych anabledd corfforol, meddyliol neu addysgol neu gyflwr iechyd sy’n golygu bod angen cymorth arnoch yn ystod eich achos?', }, @@ -3406,10 +3587,11 @@ describe('Content.ts toggle test cases', () => { key: { text: 'A oes gennych anabledd corfforol, meddyliol neu addysgol neu gyflwr iechyd sy’n golygu bod angen cymorth arnoch yn ystod eich achos?', }, - value: { html: '
                      undefined
                    ' }, + value: { html: '
                      undefined
                    ' }, }, ], - title: '12. Cefnogaeth y mae arnoch ei hangen yn ystod eich achos', + title: + '12. Cefnogaeth y mae arnoch ei hangen yn ystod eich achos', }, { rows: [ @@ -3419,6 +3601,7 @@ describe('Content.ts toggle test cases', () => { { href: '/c100-rebuild/help-with-fees/need-help-with-fees', text: ' Golygu', + attributes: {}, visuallyHiddenText: 'A ydych angen help i dalu’r ffi am wneud y cais hwn?', }, ], @@ -3427,7 +3610,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '13. Help i dalu ffioedd', + title: '13. Help i dalu ffioedd', }, ]); }); @@ -3463,7 +3646,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '1. Location details', + title: '1. Location details', }, { rows: [ @@ -3485,7 +3668,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '2. Type of application', + title: '2. Type of application', }, { rows: [ @@ -3506,7 +3689,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '3. Legal representative details', + title: '3. Legal representative details', }, { rows: [ @@ -3528,11 +3711,12 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '4. Permission to make the application', + title: '4. Permission to make the application', }, { rows: [], - title: '5. MIAM: Mediation Information and Assessment Meeting', + title: + '5. MIAM: Mediation Information and Assessment Meeting', }, { rows: [ @@ -3590,7 +3774,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'MIAM attendance', + subTitle: 'MIAM attendance', + title: '', }, { rows: [ @@ -3627,7 +3812,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '6. Past and current proceeding', + title: '6. Past and current proceeding', }, { rows: [ @@ -3665,7 +3850,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: "7. What you're asking the court to decide", + title: '7. What you\'re asking the court to decide', }, { rows: [ @@ -3702,15 +3887,16 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '8. Hearing details', + title: '8. Hearing details', }, { rows: [], - title: '9. Details of the people in the application ', + title: '9. Details of the people in the application ', }, { rows: [], - title: "Children's details", + title: '', + subTitle: "Children's details", }, { rows: [ @@ -3728,9 +3914,7 @@ describe('Content.ts toggle test cases', () => { key: { text: 'Are any of the children known to social services?', }, - value: { - html: '
                    ', - }, + value: {}, }, { actions: { @@ -3749,7 +3933,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Additional details about the children', + subTitle: 'Additional details about the children', + title: '', }, { rows: [ @@ -3771,15 +3956,18 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Other Children details', + subTitle: 'Other Children details', + title: '', }, { rows: [], - title: 'Details of the applicants', + subTitle: 'Details of the applicants', + title: '', }, { rows: [], - title: 'Details of the respondents', + subTitle: 'Details of the respondents', + title: '', }, { rows: [ @@ -3800,7 +3988,8 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: 'Details of the other people in the application', + subTitle: 'Details of the other people in the application', + title: '', }, [], { @@ -3826,7 +4015,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '10. Safety concerns', + title: '10. Safety concerns', }, { rows: [ @@ -3845,7 +4034,7 @@ describe('Content.ts toggle test cases', () => { text: "Are the children's lives mainly based outside of England and Wales?", }, value: { - html: '

                    ', + html: '
                    ', }, }, { @@ -3864,7 +4053,7 @@ describe('Content.ts toggle test cases', () => { text: "Are the children's parents (or anyone significant to the children) mainly based outside of England and Wales?", }, value: { - html: '

                    ', + html: '
                    ', }, }, { @@ -3883,7 +4072,7 @@ describe('Content.ts toggle test cases', () => { text: 'Could another person in the application apply for a similar order in a country outside England or Wales?', }, value: { - html: '

                    ', + html: '
                    ', }, }, { @@ -3902,11 +4091,11 @@ describe('Content.ts toggle test cases', () => { text: 'Has another country asked (or been asked) for information or help for the children?', }, value: { - html: '

                    ', + html: '
                    ', }, }, ], - title: '11. International elements', + title: '11. International elements', }, { rows: [ @@ -3925,7 +4114,7 @@ describe('Content.ts toggle test cases', () => { text: 'Would you be able to take part in hearings by video and phone?', }, value: { - html: '
                      undefined
                    ', + html: '
                      undefined
                    ', }, }, { @@ -3943,7 +4132,7 @@ describe('Content.ts toggle test cases', () => { text: 'Do you have any language requirements?', }, value: { - html: '
                      undefined
                    ', + html: '
                      undefined
                    ', }, }, { @@ -3961,7 +4150,7 @@ describe('Content.ts toggle test cases', () => { text: 'Do you or the children need special arrangements at court?', }, value: { - html: '
                      undefined
                    ', + html: '
                      undefined
                    ', }, }, { @@ -3980,11 +4169,11 @@ describe('Content.ts toggle test cases', () => { text: 'Do you have a physical, mental or learning disability or health condition that means you need support during your case?', }, value: { - html: '
                      undefined
                    ', + html: '
                      undefined
                    ', }, }, ], - title: '12. Support you need during your case', + title: '12. Support you need during your case', }, { rows: [ @@ -4005,7 +4194,7 @@ describe('Content.ts toggle test cases', () => { value: {}, }, ], - title: '13. Help with Fees', + title: '13. Help with Fees', }, ]); }); @@ -4025,11 +4214,13 @@ describe('Content.ts toggle test cases', () => { test('generateContent without hwf conditions', () => { expect(fields.statementOftruthHeading.type).toBe('textAndHtml'); - expect(fields.statementOftruthHeading.textAndHtml).toBe('

                    Statement of Truth

                    '); + expect(fields.statementOftruthHeading.textAndHtml).toBe( + "

                    Statement of Truth

                    " + ); expect(fields.statementOftruthSubHeading.type).toBe('textAndHtml'); expect(fields.statementOftruthSubHeading.textAndHtml).toBe( - "

                    Confirm before you submit the application

                    " + "

                    Confirm before you submit the application

                    " ); expect(fields.statementOftruthWarning.type).toBe('warning'); @@ -4048,7 +4239,7 @@ describe('Content.ts toggle test cases', () => { ); }); - test.skip('generateContent with hwf conditions', () => { + test('generateContent with hwf conditions', () => { generatedContent = generateContent({ ...commonContent, userCase: { @@ -4058,11 +4249,13 @@ describe('Content.ts toggle test cases', () => { }); expect(fields.statementOftruthHeading.type).toBe('textAndHtml'); - expect(fields.statementOftruthHeading.textAndHtml).toBe('

                    Statement of Truth

                    '); + expect(fields.statementOftruthHeading.textAndHtml).toBe( + "

                    Statement of Truth

                    " + ); expect(fields.statementOftruthSubHeading.type).toBe('textAndHtml'); expect(fields.statementOftruthSubHeading.textAndHtml).toBe( - "

                    Confirm before you submit the application

                    " + "

                    Confirm before you submit the application

                    " ); expect(fields.statementOftruthWarning.type).toBe('warning'); diff --git a/src/main/steps/c100-rebuild/check-your-answers/content.ts b/src/main/steps/c100-rebuild/check-your-answers/content.ts index b02ab7f09c..6f6b074408 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/content.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/content.ts @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ /* eslint-disable @typescript-eslint/no-unused-vars */ import { cy as CyMidiationDocument, en as EnMidiationDocument } from '.././miam/mediator-document/content'; -import { C1AAbuseTypes, C1ASafteyConcernsAbout, YesOrNo } from '../../../app/case/definition'; +import { C1AAbuseTypes, C1ASafteyConcernsAbout, RootContext, YesOrNo } from '../../../app/case/definition'; import { TranslationFn } from '../../../app/controller/GetController'; import { FormContent } from '../../../app/form/Form'; import { atLeastOneFieldIsChecked } from '../../../app/form/validation'; @@ -47,7 +47,7 @@ import { childDetailsContents } from './util/childDetails.util'; import { hearingDetailsContents } from './util/hearingwithout.util'; import { HelpWithFeeContent } from './util/helpWithFee.util'; import { MiamFieldsLoader } from './util/miam.util'; -import { otherProceedingsContents } from './util/otherProceeding.util'; +import { otherProceedingsContents } from '../../common/otherProceeding/utils'; import { ReasonableAdjustmentElement } from './util/reasonableAdjustmentContent.util'; import { RespondentsElements } from './util/respondent.util'; import { SafetyConcernContentElements } from './util/safetyConcerns.util'; @@ -89,6 +89,7 @@ export const enContent = { telephone_number: 'Telephone number', dont_know_email_address: 'I dont know their email address', dont_know_telephone: 'I dont know their telephone number', + dontKnow: "Don't know", completeSectionError: 'Complete this section', StatementOfTruth: { title: 'Statement of Truth', @@ -206,6 +207,7 @@ export const enContent = { releaseFromPrisonOnLicence: 'You have been released from prison on licence, and you have a non-contact licence condition which includes someone who is a party to the application', noneOfTheAbove: 'None of these', + applicantLabel: 'Applicant', }, }; export const cyContent = { @@ -351,6 +353,7 @@ export const cyContent = { releaseFromPrisonOnLicence: 'Rydych wedi cael eich rhyddhau o’r carchar ar drwydded, ac mae gennych amod dim cysylltu ar eich trwydded sy’n cynnwys rhywun sy’n barti i’r cais', noneOfTheAbove: 'Dim un o’r rhain', + applicantLabel: 'Ceisydd', }, yesNo: { ydynTranslation: { @@ -461,7 +464,9 @@ export const sectionCountFormatter = sections => { sections = sections.map(section => { const { title } = section; if (title?.includes('[^^sectionNo^^]')) { - section['title'] = title.split('[^^sectionNo^^]').join(sectionCount); + section['title'] = title + .split('[^^sectionNo^^].') + .join(`${sectionCount}.`); sectionCount++; } return section; @@ -696,7 +701,7 @@ export const generateContent: TranslationFn = content => { newContents['keys'] = { ...newContents.keys, ...MiamFieldsLoader(SystemLanguageContent, content), - ...otherProceedingsContents(content['language']), + ...otherProceedingsContents(content['language'], RootContext.C100_REBUILD), ...hearingDetailsContents(content['language']), ...typeOfCourtOrderContents(content['language']), ...hearingDetailsContents(content['language']), @@ -713,12 +718,12 @@ export const generateContent: TranslationFn = content => { form.fields['statementOftruthHeading'] = { type: 'textAndHtml', - textAndHtml: `${HTML.H1}${newContents.StatementOfTruth['title']} ${HTML.H1_CLOSE}`, + textAndHtml: `${HTML.STATEMENT_OF_TRUTH_HEADING_H2}${newContents.StatementOfTruth['title']} ${HTML.H2_CLOSE}`, }; form.fields['statementOftruthSubHeading'] = { type: 'textAndHtml', - textAndHtml: `${HTML.STATEMENT_OF_TRUTH_H2}${newContents.StatementOfTruth['heading']} ${HTML.STATEMENT_OF_TRUTH_H2_CLOSE}`, + textAndHtml: `${HTML.STATEMENT_OF_TRUTH_H3}${newContents.StatementOfTruth['heading']} ${HTML.H3_CLOSE}`, }; form.fields['statementOftruthWarning'] = { diff --git a/src/main/steps/c100-rebuild/check-your-answers/form.njk b/src/main/steps/c100-rebuild/check-your-answers/form.njk index f45462066c..7a2dfe02b6 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/form.njk +++ b/src/main/steps/c100-rebuild/check-your-answers/form.njk @@ -11,13 +11,18 @@ {% if sections %} {% for item in sections %} {% if item %} -

                    {{item.title}}

                    - {{ govukSummaryList({ + {% if item.title and item.title!=''%} +

                    {{item.title | safe}}

                    + {% else %} +

                    {{item.subTitle}}

                    + {% endif %} + {% if item.rows.length%} + {{ govukSummaryList({ classes: 'govuk-!-margin-bottom-9 govuk-!-margin-top-0', rows: item.rows - }) - }} - + }) + }} + {% endif %} {% endif %} {% endfor %} diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/InternationElementsHelper.test.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/InternationElementsHelper.test.ts index c787b4a057..a9d2240377 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/InternationElementsHelper.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/InternationElementsHelper.test.ts @@ -1,6 +1,3 @@ -import { HTML } from '../common/htmlSelectors'; -import { getYesNoTranslation } from '../mainUtil'; - import { InternationElementHelper } from './InternationElementsHelper'; const userCase = { ie_internationalStart: 'ie_internationalStart', @@ -32,25 +29,25 @@ const dummy = [ changeUrl: 'C100_INTERNATIONAL_ELEMENTS_START', key: 'liveOutSideUk', valueHtml: - '


                    details

                    ie_provideDetailsStart

                    ', + '
                    details
                    ie_provideDetailsStart
                    ', }, { changeUrl: 'C100_INTERNATIONAL_ELEMENTS_PARENTS', key: 'basedOutSideEnglandOrWales', valueHtml: - '


                    details

                    ie_provideDetailsParents

                    ', + '
                    details
                    ie_provideDetailsParents
                    ', }, { changeUrl: 'C100_INTERNATIONAL_ELEMENTS_JURISDICTION', key: 'anotherPersonSameOrder', valueHtml: - '


                    details

                    ie_provideDetailsJurisdiction

                    ', + '
                    details
                    ie_provideDetailsJurisdiction
                    ', }, { changeUrl: 'C100_INTERNATIONAL_ELEMENTS_REQUEST', key: 'otherCountryRequestInfo', valueHtml: - '


                    details

                    ie_provideDetailsRequest

                    ', + '
                    details
                    ie_provideDetailsRequest
                    ', }, ]; @@ -58,22 +55,26 @@ const dummyTwo = [ { changeUrl: 'C100_INTERNATIONAL_ELEMENTS_START', key: 'liveOutSideUk', - valueHtml: '

                    ', + valueHtml: + '
                    ', }, { changeUrl: 'C100_INTERNATIONAL_ELEMENTS_PARENTS', key: 'basedOutSideEnglandOrWales', - valueHtml: '

                    ', + valueHtml: + '
                    ', }, { changeUrl: 'C100_INTERNATIONAL_ELEMENTS_JURISDICTION', key: 'anotherPersonSameOrder', - valueHtml: '

                    ', + valueHtml: + '
                    ', }, { changeUrl: 'C100_INTERNATIONAL_ELEMENTS_REQUEST', key: 'otherCountryRequestInfo', - valueHtml: '

                    ', + valueHtml: + '
                    ', }, ]; const language = 'en'; @@ -85,51 +86,30 @@ test('InternaElementHelper without valueHTML', () => { expect(InternationElementHelper({}, keys, Urls, language)).toStrictEqual(dummyTwo); }); -const htmlValParser = (selection, subText, key) => { - selection = selection || ''; - subText = subText || ''; - const addDetails = subText - ? HTML.RULER + HTML.H4 + key['details'] + HTML.H4_CLOSE + HTML.P + subText + HTML.P_CLOSE - : ''; - return HTML.P + selection + HTML.P_CLOSE + addDetails; -}; - test('InternaElementHelper without valueHTML whole functionality', () => { expect(InternationElementHelper(userCase, keys, Urls, language)).toEqual([ { key: keys['liveOutSideUk'], - valueHtml: htmlValParser( - getYesNoTranslation(language, userCase['ie_internationalStart'], 'ydyntTranslation'), - userCase['ie_provideDetailsStart'], - keys - ), + valueHtml: + '
                    details
                    ie_provideDetailsStart
                    ', changeUrl: Urls['C100_INTERNATIONAL_ELEMENTS_START'], }, { key: keys['basedOutSideEnglandOrWales'], - valueHtml: htmlValParser( - getYesNoTranslation(language, userCase['ie_internationalParents'], 'ydyntTranslation'), - userCase['ie_provideDetailsParents'], - keys - ), + valueHtml: + '
                    details
                    ie_provideDetailsParents
                    ', changeUrl: Urls['C100_INTERNATIONAL_ELEMENTS_PARENTS'], }, { key: keys['anotherPersonSameOrder'], - valueHtml: htmlValParser( - getYesNoTranslation(language, userCase['ie_internationalJurisdiction'], 'gallaiTranslation'), - userCase['ie_provideDetailsJurisdiction'], - keys - ), + valueHtml: + '
                    details
                    ie_provideDetailsJurisdiction
                    ', changeUrl: Urls['C100_INTERNATIONAL_ELEMENTS_JURISDICTION'], }, { key: keys['otherCountryRequestInfo'], - valueHtml: htmlValParser( - getYesNoTranslation(language, userCase['ie_internationalRequest'], 'oesTranslation'), - userCase['ie_provideDetailsRequest'], - keys - ), + valueHtml: + '
                    details
                    ie_provideDetailsRequest
                    ', changeUrl: Urls['C100_INTERNATIONAL_ELEMENTS_REQUEST'], }, ]); diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/InternationElementsHelper.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/InternationElementsHelper.ts index 3d2854e7f9..ad1e74d864 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/InternationElementsHelper.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/InternationElementsHelper.ts @@ -7,9 +7,28 @@ const htmlValParser = (selection, subText, keys) => { selection = selection || ''; subText = subText || ''; const addDetails = subText - ? HTML.RULER + HTML.H4 + keys['details'] + HTML.H4_CLOSE + HTML.P + subText + HTML.P_CLOSE + ? HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['details'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + subText + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END : ''; - return HTML.P + selection + HTML.P_CLOSE + addDetails; + const lastRow = !subText ? HTML.ROW_START_NO_BORDER : HTML.ROW_START; + return ( + HTML.DESCRIPTION_LIST + + lastRow + + HTML.DESCRIPTION_TERM_DETAIL + + selection + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + addDetails + + HTML.DESCRIPTION_LIST_END + ); }; /* eslint-disable @typescript-eslint/no-explicit-any */ const getValueUrlByKey = (key: string, userCase: any, language: any, Urls: any, keys: any) => { diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/courtOrderHelper.test.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/courtOrderHelper.test.ts index ffe7b9b869..a56dc88494 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/courtOrderHelper.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/courtOrderHelper.test.ts @@ -22,27 +22,35 @@ describe('courtOrderHelper test case', () => { test('courtOrderSubFieldParser functionality testing', () => { const data = courtOrderSubFieldParser(userCase, keys, userKey, originalListItem); expect(data).toBe( - '
                    • test data
                    • ,
                    • test data
                    • ,
                    • test data
                    ' + '
                    • test data
                    • ,
                    • test data
                    • ,
                    • test data
                    ' ); }); test('courtOrderParentAndChildFieldParser functionality testing', () => { const data = courtOrderParentAndChildFieldParser(userCase, keys, userKey); - expect(data).toBe('
                    • test data
                    • test data
                    • test data
                    '); + expect(data).toBe( + '
                    • test data
                    • test data
                    • test data
                    ' + ); }); test('courtTypeOfOrderHelper functionality testing', () => { const data = courtTypeOfOrderHelper(userCase, keys, userKey); - expect(data).toBe('
                    • test data
                    • test data
                    • test data
                    '); + expect(data).toBe( + '
                    • test data
                    • test data
                    • test data
                    ' + ); }); test('CourtOrderParserHelper functionality testing', () => { const data = CourtOrderParserHelper(userCase, keys, userKey); - expect(data).toBe('
                    • test data
                    • test data
                    • test data
                    '); + expect(data).toBe( + '
                    • test data
                    • test data
                    • test data
                    ' + ); }); test('courtTypeOfOrder functionality testing', () => { const data = courtTypeOfOrder(userCase, keys, userKey); - expect(data).toBe('
                    • test data
                    • test data
                    • test data
                    '); + expect(data).toBe( + '
                    • test data
                    • test data
                    • test data
                    ' + ); }); }); diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/courtOrderHelper.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/courtOrderHelper.ts index b5bf2cefcc..28c967eb3a 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/courtOrderHelper.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/courtOrderHelper.ts @@ -3,12 +3,12 @@ import { HTML } from '../common/htmlSelectors'; export const courtOrderSubFieldParser = (userCase, keys, userKey, originalListItem) => { if (userCase.hasOwnProperty(userKey)) { - let returnAbleString = HTML.NESTED_LIST_ITEM + originalListItem + HTML.LIST_ITEM_END; + let returnAbleString = HTML.LIST_ITEM + originalListItem + HTML.LIST_ITEM_END; returnAbleString += HTML.UNORDER_LIST; returnAbleString += userCase[userKey] .filter(field => field !== '') .map(item => { - return HTML.NESTED_LIST_ITEM + keys[item] + HTML.LIST_ITEM_END; + return HTML.LIST_ITEM + keys[item] + HTML.LIST_ITEM_END; }); returnAbleString += HTML.UNORDER_LIST_END; return returnAbleString; diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/generalHelper.test.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/generalHelper.test.ts index a54e1923e9..25d0971341 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/generalHelper.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/generalHelper.test.ts @@ -50,7 +50,7 @@ describe('nameAndGenderParser test case', () => { const data = nameAndGenderParser(personalDetails, keys, HTML, language); expect(data).toEqual({ changeNameInformation: - 'Yes

                    Enter details

                    undefined
                    ', + '
                    Yes
                    Enter details

                    undefined
                    ', childGender: 'Male', }); }); diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/generalHelper.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/generalHelper.ts index ac174527ab..094d913a14 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/generalHelper.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/generalHelper.ts @@ -10,14 +10,24 @@ export const nameAndGenderParser = (personalDetails, keys, HTML, language) => { break; } case 'yes': { - changeNameInformation += getYesNoTranslation(language, hasNameChanged, 'doTranslation'); - changeNameInformation += HTML.RULER; - changeNameInformation += HTML.H4; + changeNameInformation += + HTML.DESCRIPTION_LIST + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + getYesNoTranslation(language, hasNameChanged, 'doTranslation') + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT; changeNameInformation += keys['details']; - changeNameInformation += HTML.H4_CLOSE; - changeNameInformation += HTML.BOTTOM_PADDING_3; + changeNameInformation += + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.BREAK + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL; changeNameInformation += personalDetails['previousFullName']; - changeNameInformation += HTML.BOTTOM_PADDING_CLOSE; + changeNameInformation += HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END + HTML.DESCRIPTION_LIST_END; break; } case 'no': { @@ -25,18 +35,32 @@ export const nameAndGenderParser = (personalDetails, keys, HTML, language) => { break; } } - let childGender = ''; + let childGender = + personalDetails['otherGenderDetails'] !== '' + ? HTML.DESCRIPTION_LIST + HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + : ''; childGender += translation(personalDetails['gender'], language); if (personalDetails['otherGenderDetails'] !== '') { childGender += - HTML.BREAK + - HTML.RULER + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + keys['otherGender'] + - HTML.H4 + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + keys['details'] + - HTML.H4_CLOSE + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + HTML.BREAK + - personalDetails['otherGenderDetails']; + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + personalDetails['otherGenderDetails'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.DESCRIPTION_LIST_END; } return { changeNameInformation, childGender }; diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/hearingdetailHelper.test.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/hearingdetailHelper.test.ts index 4d33a79ea5..1ff7fb1b5b 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/hearingdetailHelper.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/hearingdetailHelper.test.ts @@ -38,7 +38,7 @@ const language = 'en'; describe('test cases for hearing details', () => { test('hearingDetailsHelper', () => { expect(hearingDetailsHelper(userCase, keys, sessionKey, language)).toBe( - 'Yes

                    hearingWithoutLine1Field

                    hwn_reasonsForApplicationWithoutNotice


                    doYouNeedAWithoutNoticeHearingLabel

                    undefined

                    hwn_doYouNeedAWithoutNoticeHearingDetails


                    doYouRequireAHearingWithReducedNoticeLabel

                    undefined

                    hwn_doYouRequireAHearingWithReducedNoticeDetails

                    ' + '
                    Yes
                    hearingWithoutLine1Field
                    hwn_reasonsForApplicationWithoutNotice
                    doYouNeedAWithoutNoticeHearingLabel
                    undefined
                    hwn_doYouNeedAWithoutNoticeHearingDetails
                    doYouRequireAHearingWithReducedNoticeLabel
                    undefined
                    hwn_doYouRequireAHearingWithReducedNoticeDetails
                    ' ); }); @@ -56,13 +56,13 @@ describe('test cases for hearing details', () => { language ) ).toBe( - 'Yes

                    hearingWithoutLine1Field

                    hwn_reasonsForApplicationWithoutNotice


                    doYouNeedAWithoutNoticeHearingLabel


                    doYouRequireAHearingWithReducedNoticeLabel

                    ' + '
                    Yes
                    hearingWithoutLine1Field
                    hwn_reasonsForApplicationWithoutNotice
                    doYouNeedAWithoutNoticeHearingLabel
                    doYouRequireAHearingWithReducedNoticeLabel
                    ' ); }); test('hearingDetailsQualifyForFirstHearingHelper > Alternatice useCase', () => { expect(hearingDetailsQualifyForFirstHearingHelper(userCaseTwo, keysTwo, sessionKey, language)).toBe( - 'Yes

                    reasonForUrgentHearing

                    • undefined
                    • undefined
                    • undefined
                    • undefined

                    giveDetailsOtherRisks

                    hu_otherRiskDetails

                    timeOfHearing

                    hu_timeOfHearingDetails


                    undefined

                    Yes

                    undefined

                    hu_hearingWithNext48HrsMsg

                    ' + '
                    Yes
                    reasonForUrgentHearing
                    • undefined
                    • undefined
                    • undefined
                    • undefined
                    giveDetailsOtherRisks
                    hu_otherRiskDetails
                    timeOfHearing
                    hu_timeOfHearingDetails
                    undefined
                    Yes
                    undefined
                    hu_hearingWithNext48HrsMsg
                    ' ); }); @@ -80,7 +80,7 @@ describe('test cases for hearing details', () => { sessionKey, language ) - ).toBe('No'); + ).toBe('
                    No
                    '); }); test('hearingDetailsQualifyForFirstHearingHelper > values undefined > alternative', () => { @@ -97,7 +97,7 @@ describe('test cases for hearing details', () => { language ) ).toBe( - 'Yes

                    reasonForUrgentHearing


                    giveDetailsOtherRisks

                    hu_otherRiskDetails

                    timeOfHearing


                    undefined

                    No

                    ' + '
                    Yes
                    reasonForUrgentHearing
                    giveDetailsOtherRisks
                    hu_otherRiskDetails
                    timeOfHearing
                    undefined
                    No
                    ' ); }); }); diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/hearingdetailHelper.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/hearingdetailHelper.ts index 3fd73757c7..0f709baf0b 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/hearingdetailHelper.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/hearingdetailHelper.ts @@ -1,46 +1,82 @@ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import { YesOrNo } from '../../../../../main/app/case/definition'; +import { CaseWithId } from '../../../../app/case/case'; import { HTML } from '../common/htmlSelectors'; import { getYesNoTranslation } from '../mainUtil'; export const hearingDetailsHelper = (userCase, keys, sessionKey, language) => { if (userCase.hasOwnProperty(sessionKey)) { - let html = ''; + let html = generateStartBorderHtml(userCase, 'hwn_hearingPart1'); html += getYesNoTranslation(language, userCase['hwn_hearingPart1'], 'ydwTranslation'); if (userCase.hasOwnProperty('hwn_hearingPart1') && userCase['hwn_hearingPart1'] === 'Yes') { - html += HTML.RULER; - html += HTML.H4 + keys['hearingWithoutLine1Field'] + HTML.H4_CLOSE; - html += HTML.P + userCase?.['hwn_reasonsForApplicationWithoutNotice'] + HTML.P_CLOSE; - html += HTML.RULER; - html += HTML.H4 + keys['doYouNeedAWithoutNoticeHearingLabel'] + HTML.H4_CLOSE; + html += HTML.DESCRIPTION_TERM_DETAIL_END; + html += HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER; html += - HTML.P + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['hearingWithoutLine1Field'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; + html += + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + userCase?.['hwn_reasonsForApplicationWithoutNotice'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER; + html += + HTML.DESCRIPTION_TERM_ELEMENT + + keys['doYouNeedAWithoutNoticeHearingLabel'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; + html += + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + getYesNoTranslation(language, userCase?.['hwn_doYouNeedAWithoutNoticeHearing'], 'ydwTranslation') + - HTML.P_CLOSE; + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; html += userCase['hwn_doYouNeedAWithoutNoticeHearingDetails'] !== undefined - ? HTML.H4 + + ? HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + keys['details'] + - HTML.H4_CLOSE + - HTML.P + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + userCase?.['hwn_doYouNeedAWithoutNoticeHearingDetails'] + - HTML.P_CLOSE + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END : ''; - html += HTML.RULER; - html += HTML.H4 + keys['doYouRequireAHearingWithReducedNoticeLabel'] + HTML.H4_CLOSE; + html += - HTML.P + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['doYouRequireAHearingWithReducedNoticeLabel'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; + html += + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + getYesNoTranslation(language, userCase?.['hwn_doYouRequireAHearingWithReducedNotice'], 'ydwTranslation') + - HTML.P_CLOSE; + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; html += userCase['hwn_doYouRequireAHearingWithReducedNoticeDetails'] !== undefined - ? HTML.H4 + + ? HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + keys['details'] + - HTML.H4_CLOSE + - HTML.P + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + userCase?.['hwn_doYouRequireAHearingWithReducedNoticeDetails'] + - HTML.P_CLOSE + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END : ''; + html += HTML.DESCRIPTION_LIST_END; + } else { + html += HTML.ROW_END; } return html; } @@ -48,44 +84,92 @@ export const hearingDetailsHelper = (userCase, keys, sessionKey, language) => { export const hearingDetailsQualifyForFirstHearingHelper = (userCase, keys, sessionKey, language) => { if (userCase.hasOwnProperty(sessionKey)) { - let html = ''; + let html = generateStartBorderHtml(userCase, 'hu_urgentHearingReasons'); html += getYesNoTranslation(language, userCase['hu_urgentHearingReasons'], 'oesTranslation'); if (userCase.hasOwnProperty('hu_urgentHearingReasons') && userCase['hu_urgentHearingReasons'] === 'Yes') { - html += HTML.RULER; - html += HTML.H4 + keys['reasonForUrgentHearing'] + HTML.H4_CLOSE; + html += HTML.DESCRIPTION_TERM_DETAIL_END; + html += HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER; + html += + HTML.DESCRIPTION_TERM_ELEMENT + + keys['reasonForUrgentHearing'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; html += userCase.hasOwnProperty('hu_reasonOfUrgentHearing') ? ( + HTML.ROW_START + HTML.UNORDER_LIST + userCase['hu_reasonOfUrgentHearing'].map(item => { return HTML.LIST_ITEM + keys[item] + HTML.LIST_ITEM_END; }) + - HTML.UNORDER_LIST_END + HTML.UNORDER_LIST_END + + HTML.ROW_END ) .split(',') .join('') - : ''; - html += HTML.RULER; - html += HTML.H4 + keys['giveDetailsOtherRisks'] + HTML.H4_CLOSE; - html += HTML.P + userCase?.['hu_otherRiskDetails'] + HTML.P_CLOSE; - html += HTML.H4 + keys['timeOfHearing'] + HTML.H4_CLOSE; + : HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + '' + HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER; + html += + HTML.DESCRIPTION_TERM_ELEMENT + + keys['giveDetailsOtherRisks'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; + html += + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + userCase?.['hu_otherRiskDetails'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; + html += + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['timeOfHearing'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; html += userCase['hu_timeOfHearingDetails'] !== undefined - ? HTML.P + userCase?.['hu_timeOfHearingDetails'] + HTML.P_CLOSE - : ''; - html += HTML.RULER; - html += HTML.H4 + keys['hearingWithNext48Hrs'] + HTML.H4_CLOSE; + ? HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + userCase?.['hu_timeOfHearingDetails'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + : HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + '' + HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER; html += - HTML.P + + HTML.DESCRIPTION_TERM_ELEMENT + keys['hearingWithNext48Hrs'] + HTML.DESCRIPTION_TERM_ELEMENT_END + HTML.ROW_END; + html += + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + getYesNoTranslation(language, userCase?.['hu_hearingWithNext48HrsDetails'], 'doTranslation') + - HTML.P_CLOSE; + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; if ( userCase.hasOwnProperty('hu_hearingWithNext48HrsDetails') && userCase['hu_hearingWithNext48HrsDetails'] === YesOrNo.YES ) { - html += HTML.H4 + keys['hearingWithNext48HrsDetails'] + HTML.H4_CLOSE; - html += HTML.P + userCase['hu_hearingWithNext48HrsMsg'] + HTML.P_CLOSE; + html += + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['hearingWithNext48HrsDetails'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; + html += + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + userCase['hu_hearingWithNext48HrsMsg'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; } + html += HTML.DESCRIPTION_LIST_END; + } else { + html += HTML.ROW_END; } return html; } }; + +const generateStartBorderHtml = (userCase: CaseWithId, field: string) => { + return userCase.hasOwnProperty(field) && userCase[field] === 'Yes' + ? HTML.DESCRIPTION_LIST + HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + : HTML.ROW_START_NO_BORDER; +}; diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/miamHelper.test.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/miamHelper.test.ts index e0c9edabef..d7b31a0e64 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/miamHelper.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/miamHelper.test.ts @@ -102,7 +102,7 @@ describe('Miam Fields parser', () => { 'en' ); expect(str).toBe( - 'The police have been involved
                    • Evidence that a party in the application has been arrested for a domestic abuse offence

                    Can you provide evidence?
                    Yes
                    Evidence of domestic abuse
                    • test_document
                    ' + '
                    The police have been involved
                    • Evidence that a party in the application has been arrested for a domestic abuse offence
                    Can you provide evidence?
                    Yes
                    Evidence of domestic abuse
                    • test_document
                    ' ); }); }); @@ -130,7 +130,7 @@ describe('Miam Fields parser - InstanceOfMiamHelper miamExemptionParser', () => }) ).toStrictEqual({ listOfReasons: - '
                    • Domestic abuse
                    • Urgency
                    • Child protection concerns
                    • Previous attendance of a MIAM or non-court dispute resolution (NCDR)
                    • Other reason
                    • undefined
                    ', + '
                    • Domestic abuse
                    • Urgency
                    • Child protection concerns
                    • Previous attendance of a MIAM or non-court dispute resolution (NCDR)
                    • Other reason
                    • undefined
                    ', }); }); @@ -139,7 +139,7 @@ describe('Miam Fields parser - InstanceOfMiamHelper miamExemptionParser', () => miam_nonAttendanceReasons: ['none'], }; expect(MiamHelper.miamExemptionParser(userCase, { ...enContent.keys, noneHead: 'None of these' })).toStrictEqual({ - listOfReasons: '
                    • None of these
                    ', + listOfReasons: '
                    • None of these
                    ', }); }); @@ -220,7 +220,7 @@ describe('Miam Fields parser - InstanceOfMiamHelper miamExemptionParserDynamicEn changeUrl: '/c100-rebuild/miam/previous-attendance', key: 'What evidence do you have that you previously attended a MIAM or NCDR?', valueHtml: - 'The application would be made in existing proceedings which are continuing and a MIAM exemption applied to the application for those proceedings
                    Do you have a document signed by a mediator?
                    No
                    Provide details of MIAM attendance
                    test data', + '
                    The application would be made in existing proceedings which are continuing and a MIAM exemption applied to the application for those proceedings
                    Do you have a document signed by a mediator?
                    No
                    Provide details of MIAM attendance
                    test data
                    ', }, ]); }); @@ -253,7 +253,7 @@ describe('Miam Fields parser - InstanceOfMiamHelper miamExemptionParserDynamicEn changeUrl: '/c100-rebuild/miam/previous-attendance', key: 'What evidence do you have that you previously attended a MIAM or NCDR?', valueHtml: - 'In the 4 months before making the application, you attended a MIAM or participated in another form of NCDR relating to the same (or substantially the same) dispute
                    Evidence of attending a MIAM or NCDR
                    test_document', + '
                    In the 4 months before making the application, you attended a MIAM or participated in another form of NCDR relating to the same (or substantially the same) dispute
            Evidence of attending a MIAM or NCDR
            test_document
            ', }, ]); }); @@ -270,7 +270,7 @@ describe('Miam Fields parser - InstanceOfMiamHelper miamExemptionParserDynamicEn changeUrl: '/c100-rebuild/miam/miam-other', key: 'What other reason do you have for not attending a MIAM?', valueHtml: - '
            Why can you not access a mediator?
            You are unable to attend a MIAM online or by video link because the mediators contacted are unable to conduct a MIAM within 15 business days of the date of contact.
            Give details of the mediators you’ve contacted
            test data', + '
            Why can you not access a mediator?
            You are unable to attend a MIAM online or by video link because the mediators contacted are unable to conduct a MIAM within 15 business days of the date of contact.
            Give details of the mediators you’ve contacted
            test data
            ', }, ]); }); @@ -287,7 +287,7 @@ describe('Miam Fields parser - InstanceOfMiamHelper miamExemptionParserDynamicEn changeUrl: '/c100-rebuild/miam/miam-other', key: 'What other reason do you have for not attending a MIAM?', valueHtml: - '
            Why can you not access a mediator?
            You have a disability or other inability that prevents you from attending a MIAM in person online or by video link and the contacted mediators are unable to provide appropriate facilities for you to attend.
            Give details of the mediators you’ve contacted
            test data', + '
            Why can you not access a mediator?
            You have a disability or other inability that prevents you from attending a MIAM in person online or by video link and the contacted mediators are unable to provide appropriate facilities for you to attend.
            Give details of the mediators you’ve contacted
            test data
            ', }, ]); }); @@ -304,7 +304,7 @@ describe('Miam Fields parser - InstanceOfMiamHelper miamExemptionParserDynamicEn changeUrl: '/c100-rebuild/miam/miam-other', key: 'What other reason do you have for not attending a MIAM?', valueHtml: - '
            Why can you not access a mediator?
            There is no mediator within 15 miles of your home and you cannot attend the MIAM online or by video link.
            Give details of the mediators you’ve contacted
            test data', + '
            Why can you not access a mediator?
            There is no mediator within 15 miles of your home and you cannot attend the MIAM online or by video link.
            Give details of the mediators you’ve contacted
            test data
            ', }, ]); }); diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/miamHelper.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/miamHelper.ts index a2097258e4..b4d49bd090 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/miamHelper.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/miamHelper.ts @@ -37,7 +37,7 @@ Object.getPrototypeOf(InstanceOfMiamHelper).miamExemptionParser = (userCase, key const nonAttenDanceReaseons = userCase['miam_nonAttendanceReasons'] .flatMap(reason => keys[`${reason}Head`]) .map(element => { - return HTML.NESTED_LIST_ITEM + element + HTML.LIST_ITEM_END; + return HTML.LIST_ITEM + element + HTML.LIST_ITEM_END; }); const listOfReasons = (HTML.UNORDER_LIST + nonAttenDanceReaseons + HTML.UNORDER_LIST_END).split(',').join(' '); return { listOfReasons }; @@ -52,19 +52,25 @@ const generateDomesticAbuseAdditionalFields = ( language: string ): string => { return ( - HTML.RULER + - HTML.BOLD + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + keys['domesticAbuseProvideEvidence'] + - HTML.BOLD_CLOSE + - HTML.RULER + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + getYesNoTranslation(language, userCase.miam_canProvideDomesticAbuseEvidence, 'gallafTranslation') + - HTML.RULER + - HTML.BOLD + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + (userCase.miam_canProvideDomesticAbuseEvidence === YesOrNo.YES ? keys['domesticAbuseEvidence'] : keys['domesticAbuseCantProvideEvidence']) + - HTML.BOLD_CLOSE + - HTML.RULER + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + (userCase.miam_canProvideDomesticAbuseEvidence === YesOrNo.YES ? HTML.UNORDER_LIST + userCase.miam_domesticAbuseEvidenceDocs?.map(doc => { @@ -84,22 +90,29 @@ const generateNCDRAdditionalFields = ( if (userCase.miam_previousAttendance === Miam_previousAttendance.miamExamptionApplied) { additionalFields += - HTML.RULER + - HTML.BOLD + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + keys['haveDocSignedByMediatorForPrevAttendance'] + - HTML.BOLD_CLOSE + - HTML.RULER + - getYesNoTranslation(language, userCase.miam_haveDocSignedByMediatorForPrevAttendance, 'oesTranslation'); + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + getYesNoTranslation(language, userCase.miam_haveDocSignedByMediatorForPrevAttendance, 'oesTranslation') + + HTML.DESCRIPTION_TERM_DETAIL_END; } if (userCase.miam_haveDocSignedByMediatorForPrevAttendance === YesOrNo.NO) { additionalFields += - HTML.RULER + - HTML.BOLD + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + keys['detailsOfPrevMiamEvidence'] + - HTML.BOLD_CLOSE + - HTML.RULER + - userCase.miam_detailsOfEvidence; + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + userCase.miam_detailsOfEvidence + + HTML.DESCRIPTION_TERM_DETAIL_END; } if ( @@ -107,12 +120,17 @@ const generateNCDRAdditionalFields = ( userCase.miam_haveDocSignedByMediatorForPrevAttendance === YesOrNo.YES ) { additionalFields += - HTML.RULER + - HTML.BOLD + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + keys['prevMiamEvidence'] + - HTML.BOLD_CLOSE + - HTML.RULER + - userCase.miam_previousAttendanceEvidenceDoc?.document_filename; + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + userCase.miam_previousAttendanceEvidenceDoc?.document_filename + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; } return additionalFields; @@ -125,41 +143,59 @@ const generateOtherExemptionAdditionalFields = ( let additionalFields = ''; if (userCase.miam_notAttendingReasons === Miam_notAttendingReasons.canNotAccessMediator) { additionalFields += - HTML.RULER + - HTML.BOLD + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + keys['whyCantAccessMediator'] + - HTML.BOLD_CLOSE + - HTML.RULER + - keys[userCase.miam_noMediatorReasons!]; + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + keys[userCase.miam_noMediatorReasons!] + + HTML.DESCRIPTION_TERM_ELEMENT_END; if (userCase.miam_noMediatorReasons === Miam_noMediatorReasons.noAppointmentAvailable) { additionalFields += - HTML.RULER + - HTML.BOLD + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + keys['giveDetailsOfMediators'] + - HTML.BOLD_CLOSE + - HTML.RULER + - userCase.miam_noAppointmentAvailableDetails; + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + userCase.miam_noAppointmentAvailableDetails + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; } if (userCase.miam_noMediatorReasons === Miam_noMediatorReasons.disability) { additionalFields += - HTML.RULER + - HTML.BOLD + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + keys['giveDetailsOfMediators'] + - HTML.BOLD_CLOSE + - HTML.RULER + - userCase.miam_unableToAttainDueToDisablityDetails; + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + userCase.miam_unableToAttainDueToDisablityDetails + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; } if (userCase.miam_noMediatorReasons === Miam_noMediatorReasons.noMediatorIn15mile) { additionalFields += - HTML.RULER + - HTML.BOLD + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_ELEMENT + keys['giveDetailsOfMediators'] + - HTML.BOLD_CLOSE + - HTML.RULER + - userCase.miam_noMediatorIn15mileDetails; + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + userCase.miam_noMediatorIn15mileDetails + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; } } @@ -174,7 +210,8 @@ export const miamParentAndChildFieldParser = ( ): string => { if (userCase.hasOwnProperty(sessionKey)) { const mappedVals = _.isArray(userCase[sessionKey]) - ? userCase[sessionKey].map(nonAttendance => { + ? HTML.DESCRIPTION_TERM_DETAIL + + userCase[sessionKey].map(nonAttendance => { if (userCase.hasOwnProperty(`${sessionKey}_${nonAttendance}_subfields`)) { return ( _.get(keys, nonAttendance) + @@ -182,7 +219,7 @@ export const miamParentAndChildFieldParser = ( userCase[`${sessionKey}_${nonAttendance}_subfields`] .filter(field => field !== '') .map(item => { - return HTML.NESTED_LIST_ITEM + keys[`${nonAttendance}_subFields`][item] + HTML.LIST_ITEM_END; + return HTML.LIST_ITEM + keys[`${nonAttendance}_subFields`][item] + HTML.LIST_ITEM_END; }) + HTML.UNORDER_LIST_END ) @@ -191,8 +228,9 @@ export const miamParentAndChildFieldParser = ( } else { return keys[nonAttendance]; } - }) - : [keys[userCase[sessionKey]]]; + }) + + HTML.DESCRIPTION_TERM_DETAIL_END + : HTML.DESCRIPTION_TERM_DETAIL + [keys[userCase[sessionKey]]] + HTML.DESCRIPTION_TERM_DETAIL_END; let additionalFields = ''; if (sessionKey === 'miam_domesticAbuse' && !userCase.miam_domesticAbuse?.includes(DomesticAbuseExemptions.NONE)) { @@ -204,7 +242,16 @@ export const miamParentAndChildFieldParser = ( additionalFields = generateOtherExemptionAdditionalFields(userCase, keys).split(',').join(''); } - return (mappedVals + additionalFields).split(',').join(''); + return ( + HTML.DESCRIPTION_LIST + + HTML.ROW_START + + mappedVals + + HTML.ROW_END + + additionalFields + + HTML.DESCRIPTION_LIST_END + ) + .split(',') + .join(''); } else { return ''; } @@ -236,10 +283,16 @@ export const MiamHelperDynamicEnteriesMapper = ( [MiamNonAttendReason.PREV_MIAM]: { key: keys['previousMIAMOrExemptHeading'], valueHtml: + HTML.DESCRIPTION_LIST + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + keys[userCase.miam_previousAttendance!] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + (userCase.miam_previousAttendance !== Miam_previousAttendance.none ? generateNCDRAdditionalFields(userCase, keys, language).split(',').join('') - : ''), + : '') + + HTML.DESCRIPTION_LIST_END, changeUrl: C100_MIAM_PREVIOUS_ATTENDANCE, }, [MiamNonAttendReason.EXEMPT]: { diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/peopleHelper.test.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/peopleHelper.test.ts index f8cdbf81fe..336991260f 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/peopleHelper.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/peopleHelper.test.ts @@ -45,45 +45,51 @@ describe('test cases for peopleHelper', () => { test('applicantAddressParser returns correct address details', () => { expect(applicantAddressParser(userCase, keys, language)).toBe( - 'MOCK_ADDRESS_1
            MOCK_ADDRESS_2
            MOCK_ADDRESS_TOWN
            MOCK_ADRESS_COUNTY

            MOCK_POSTCODE

            haveLivedMoreLabel

            No

            previousAddressLabel

            Previous adresses
            ' + '
            MOCK_ADDRESS_1
            MOCK_ADDRESS_2
            MOCK_ADDRESS_TOWN
            MOCK_ADRESS_COUNTY

            MOCK_POSTCODE
            haveLivedMoreLabel
            No
            ' ); }); test('applicantAddressParser returns correct values when address doesnt exist', () => { - expect(applicantAddressParser({}, keys, language)).toBe(''); + expect(applicantAddressParser({}, keys, language)).toBe( + '
            ' + ); }); test('applicantAddressParserForRespondents_addressHistory should return address history correctly', () => { expect(applicantAddressParserForRespondents_addressHistory(userCase, keys, language)).toBe( - '

            respondentAddressLabel

            No

            previousAddressLabel

            Previous adresses
            ' + '
            respondentAddressLabel
            No
            previousAddressLabel
            Previous adresses
            ' ); }); test('applicantAddressParserForRespondents_addressHistory should not return address history when yes selected', () => { expect( applicantAddressParserForRespondents_addressHistory({ ...userCase, addressHistory: 'Yes' }, keys, language) - ).toBe('

            respondentAddressLabel

            Yes
            '); + ).toBe( + '
            respondentAddressLabel
            Yes
            previousAddressLabel
            Previous adresses
            ' + ); }); test('applicantAddressParserForRespondents_addressHistory should return correct values when address history doesnt exist', () => { - expect(applicantAddressParserForRespondents_addressHistory({}, keys, language)).toBe(''); + expect(applicantAddressParserForRespondents_addressHistory({}, keys, language)).toBe(''); }); test('applicantAddressParserForRespondents should return correctly for address values', () => { expect(applicantAddressParserForRespondents(userCase, keys, language)).toBe( - 'MOCK_ADDRESS_1
            MOCK_ADDRESS_2
            MOCK_ADDRESS_TOWN
            MOCK_ADRESS_COUNTY

            MOCK_POSTCODE
            MOCK_COUNTRY

            respondentAddressLabel

            No

            previousAddressLabel

            Previous adresses
            ' + '
            MOCK_ADDRESS_1
            MOCK_ADDRESS_2
            MOCK_ADDRESS_TOWN
            MOCK_ADRESS_COUNTY

            MOCK_POSTCODE
            MOCK_COUNTRY
            respondentAddressLabel
            No
            previousAddressLabel
            Previous adresses
            ' ); }); test('applicantAddressParserForRespondents should return correctly when no address values', () => { - expect(applicantAddressParserForRespondents({}, keys, language)).toBe(''); + expect(applicantAddressParserForRespondents({}, keys, language)).toBe( + '
            ' + ); }); test('applicantContactDetailsParser returns correct HTML when values are yes', () => { expect( applicantContactDetailsParser({ ...userCase, canProvideEmail: 'Yes', canProvideTelephoneNumber: 'Yes' }, keys) ).toBe( - '

            canProvideEmailLabel

            MOCK_EMAIL

            canProvideTelephoneNumberLabel

            MOCK_TELEPHONE_NUMBER
            ' + '
            canProvideEmailLabel
            MOCK_EMAIL
            canProvideTelephoneNumberLabel
            MOCK_TELEPHONE_NUMBER
            ' ); }); @@ -91,14 +97,12 @@ describe('test cases for peopleHelper', () => { expect( applicantContactDetailsParser({ ...userCase, canProvideEmail: 'No', canProvideTelephoneNumber: 'No' }, keys) ).toBe( - '

            canNotProvideEmailLabel


            canNotProvideTelephoneNumberLabel

            undefined
            ' + '
            canNotProvideEmailLabel
            canNotProvideTelephoneNumberLabel
            undefined
            ' ); }); test('applicantContactDetailsParser returns correct HTML when values are not provided', () => { - expect(applicantContactDetailsParser({}, keys)).toBe( - '
            ' - ); + expect(applicantContactDetailsParser({}, keys)).toBe('
            '); }); test('applicantCourtCanLeaveVoiceMail should return correct HTML when canLeaveVoiceMail is Yes', () => { @@ -115,11 +119,13 @@ describe('test cases for peopleHelper', () => { test('otherPeopleAddressParser should return correct HTML for address values', () => { expect(otherPeopleAddressParser(userCase)).toBe( - 'MOCK_ADDRESS_1
            MOCK_ADDRESS_2
            MOCK_ADDRESS_TOWN
            MOCK_ADRESS_COUNTY

            MOCK_POSTCODE
            MOCK_COUNTRY
            ' + '
            MOCK_ADDRESS_1
            MOCK_ADDRESS_2
            MOCK_ADDRESS_TOWN
            MOCK_ADRESS_COUNTY

            MOCK_POSTCODE
            MOCK_COUNTRY
            ' ); }); test('otherPeopleAddressParser should return correct HTML when address values not present', () => { - expect(otherPeopleAddressParser({})).toBe(''); + expect(otherPeopleAddressParser({})).toBe( + '
            ' + ); }); }); diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/peopleHelper.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/peopleHelper.ts index 4c94ab1788..f84f565331 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/peopleHelper.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/peopleHelper.ts @@ -1,79 +1,73 @@ /* eslint-disable prettier/prettier */ import { HTML } from '../common/htmlSelectors'; -import { getYesNoTranslation } from '../mainUtil'; +import { getYesNoTranslation, isBorderPresent } from '../mainUtil'; /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ export const applicantAddressParser = (sessionApplicantData, keys,language) => { - let html = '' as string; + let html = HTML.DESCRIPTION_LIST+HTML.ROW_START+HTML.DESCRIPTION_TERM_DETAIL; html+= sessionApplicantData.hasOwnProperty('applicantAddress1') && sessionApplicantData['applicantAddress1'] !== '' ? sessionApplicantData['applicantAddress1'] + HTML.BREAK : ''; html+= sessionApplicantData.hasOwnProperty('applicantAddress2') && sessionApplicantData['applicantAddress2'] !== '' ? sessionApplicantData['applicantAddress2'] + HTML.BREAK : ''; html+= sessionApplicantData.hasOwnProperty('applicantAddressTown') && sessionApplicantData['applicantAddressTown'] !== '' ? sessionApplicantData['applicantAddressTown'] + HTML.BREAK: ''; html+= sessionApplicantData.hasOwnProperty('applicantAddressCounty') && sessionApplicantData['applicantAddressCounty'] !== '' ? sessionApplicantData['applicantAddressCounty'] + HTML.BREAK + HTML.BREAK : ''; - html+= sessionApplicantData.hasOwnProperty('applicantAddressPostcode') && sessionApplicantData['applicantAddressPostcode'] !== '' ? sessionApplicantData['applicantAddressPostcode']+ HTML.RULER : ''; + html+= sessionApplicantData.hasOwnProperty('applicantAddressPostcode') && sessionApplicantData['applicantAddressPostcode'] !== '' ? sessionApplicantData['applicantAddressPostcode'] : ''; + html+=HTML.DESCRIPTION_TERM_DETAIL_END+ HTML.ROW_END; if(sessionApplicantData.hasOwnProperty('applicantAddressHistory')){ - html += HTML.H4 + keys['haveLivedMore'] + HTML.H4_CLOSE; - html += getYesNoTranslation(language,sessionApplicantData?.['applicantAddressHistory'],'doTranslation'); - if(sessionApplicantData['applicantAddressHistory'] === 'No'){ - html += HTML.RULER; - html += HTML.H4 + keys['previousAddress'] + HTML.H4_CLOSE + HTML.BOTTOM_PADDING_3; - sessionApplicantData.hasOwnProperty('applicantProvideDetailsOfPreviousAddresses')&& (html += sessionApplicantData?.['applicantProvideDetailsOfPreviousAddresses'] ); - html += HTML.BOTTOM_PADDING_CLOSE; + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_ELEMENT + keys['haveLivedMore'] +HTML.DESCRIPTION_TERM_ELEMENT_END+ HTML.ROW_END; + html +=isBorderPresent(sessionApplicantData['applicantAddressHistory'],'Yes'); + html += HTML.DESCRIPTION_TERM_DETAIL +getYesNoTranslation(language,sessionApplicantData?.['applicantAddressHistory'],'doTranslation')+HTML.DESCRIPTION_TERM_DETAIL_END+ HTML.ROW_END; + if(sessionApplicantData['applicantAddressHistory'] === 'Yes'){ + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_ELEMENT + keys['previousAddress'] +HTML.DESCRIPTION_TERM_ELEMENT_END+ HTML.ROW_END; + sessionApplicantData.hasOwnProperty('applicantProvideDetailsOfPreviousAddresses')&& (html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_DETAIL +sessionApplicantData?.['applicantProvideDetailsOfPreviousAddresses'] +HTML.DESCRIPTION_TERM_DETAIL_END+ HTML.ROW_END); } } - return html; + return html+HTML.DESCRIPTION_LIST_END; }; export const applicantAddressParserForRespondents_addressHistory = (sessionApplicantData, keys,language) => { let html = '' as string; if(sessionApplicantData.hasOwnProperty('addressHistory')){ - html += HTML.H4 + keys['respondentAddressLabel'] + HTML.H4_CLOSE; - html += HTML.BOTTOM_PADDING_3; - html += getYesNoTranslation(language,sessionApplicantData?.['addressHistory'],'ydyntTranslationResp'); - html += HTML.BOTTOM_PADDING_CLOSE; - if(sessionApplicantData.addressHistory === 'no'){ - html += HTML.RULER; - html += HTML.H4 + keys['previousAddress'] + HTML.H4_CLOSE + HTML.BOTTOM_PADDING_3; - sessionApplicantData.hasOwnProperty('provideDetailsOfPreviousAddresses')&& (html += sessionApplicantData['provideDetailsOfPreviousAddresses'] ); - html += HTML.BOTTOM_PADDING_CLOSE; + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_ELEMENT +keys['respondentAddressLabel'] +HTML.DESCRIPTION_TERM_ELEMENT_END+ HTML.ROW_END; + html += isBorderPresent(sessionApplicantData.addressHistory,'yes'); + html += HTML.DESCRIPTION_TERM_DETAIL +getYesNoTranslation(language,sessionApplicantData?.['addressHistory'],'ydyntTranslationResp')+HTML.DESCRIPTION_TERM_DETAIL_END+ HTML.ROW_END; + if(sessionApplicantData.provideDetailsOfPreviousAddresses){ + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_ELEMENT + keys['previousAddress'] +HTML.DESCRIPTION_TERM_ELEMENT_END+ HTML.ROW_END; + sessionApplicantData.hasOwnProperty('provideDetailsOfPreviousAddresses')&& (html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_DETAIL +sessionApplicantData['provideDetailsOfPreviousAddresses']+HTML.DESCRIPTION_TERM_DETAIL_END+ HTML.ROW_END ); } } - return html; + return html+HTML.DESCRIPTION_LIST_END; }; /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ export const applicantAddressParserForRespondents = (sessionApplicantData, keys,language): string => { - let html = '' as string; + let html = HTML.DESCRIPTION_LIST+HTML.ROW_START +HTML.DESCRIPTION_TERM_DETAIL; html+= sessionApplicantData.hasOwnProperty('AddressLine1') && sessionApplicantData['AddressLine1'] !== '' ? sessionApplicantData['AddressLine1'] + HTML.BREAK : ''; html+= sessionApplicantData.hasOwnProperty('AddressLine2') && sessionApplicantData['AddressLine2'] !== '' ? sessionApplicantData['AddressLine2'] + HTML.BREAK : ''; html+= sessionApplicantData.hasOwnProperty('PostTown') && sessionApplicantData['PostTown'] !== '' ? sessionApplicantData['PostTown'] + HTML.BREAK : ''; html+= sessionApplicantData.hasOwnProperty('County') && sessionApplicantData['County'] !== '' ? sessionApplicantData['County'] + HTML.BREAK + HTML.BREAK : ''; html+= sessionApplicantData.hasOwnProperty('PostCode') && sessionApplicantData['PostCode'] !== '' ? sessionApplicantData['PostCode']+ HTML.BREAK : ''; - html+= sessionApplicantData.hasOwnProperty('Country') && sessionApplicantData['Country'] !== '' ? sessionApplicantData['Country']+ HTML.RULER : ''; + html+= sessionApplicantData.hasOwnProperty('Country') && sessionApplicantData['Country'] !== '' ? sessionApplicantData['Country'] : ''; + html+=HTML.DESCRIPTION_TERM_DETAIL_END+ HTML.ROW_END; html += applicantAddressParserForRespondents_addressHistory (sessionApplicantData, keys,language); return html; }; /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ export const applicantContactDetailsParser = (sessionApplicantData, keys): string => { - let html = '' as string; + let html = HTML.DESCRIPTION_LIST as string; if(sessionApplicantData['canProvideEmail'] === 'Yes'){ - html += HTML.H4 + keys['canProvideEmailLabel'] + HTML.H4_CLOSE; - html += sessionApplicantData['emailAddress']; + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_ELEMENT + keys['canProvideEmailLabel'] + HTML.DESCRIPTION_TERM_ELEMENT_END+HTML.ROW_END; + html += HTML.ROW_START+HTML.DESCRIPTION_TERM_DETAIL +sessionApplicantData['emailAddress']+ HTML.DESCRIPTION_TERM_DETAIL_END+HTML.ROW_END; } if(sessionApplicantData['canProvideEmail'] === 'No'){ - html += HTML.H4 + keys['canNotProvideEmailLabel'] + HTML.H4_CLOSE; + html += HTML.ROW_START+HTML.DESCRIPTION_TERM_ELEMENT + keys['canNotProvideEmailLabel'] + HTML.DESCRIPTION_TERM_ELEMENT_END+HTML.ROW_END; } - html += HTML.RULER; + if(sessionApplicantData['canProvideTelephoneNumber'] === 'Yes'){ - html += HTML.H4 + keys['canProvideTelephoneNumberLabel'] + HTML.H4_CLOSE; - html += HTML.BOTTOM_PADDING_3; - html += sessionApplicantData['telephoneNumber']; - html += HTML.BOTTOM_PADDING_CLOSE; + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_ELEMENT +keys['canProvideTelephoneNumberLabel'] + HTML.DESCRIPTION_TERM_ELEMENT_END+HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_DETAIL +sessionApplicantData['telephoneNumber'] +HTML.DESCRIPTION_TERM_DETAIL_END+HTML.ROW_END; } if(sessionApplicantData['canProvideTelephoneNumber'] === 'No'){ - html += HTML.H4 + keys['canNotProvideTelephoneNumberLabel'] + HTML.H4_CLOSE; - html += HTML.BOTTOM_PADDING_3; - html += sessionApplicantData['canNotProvideTelephoneNumberReason']; - html += HTML.BOTTOM_PADDING_CLOSE; + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_ELEMENT + keys['canNotProvideTelephoneNumberLabel'] + HTML.DESCRIPTION_TERM_ELEMENT_END+HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER+HTML.DESCRIPTION_TERM_DETAIL +sessionApplicantData['canNotProvideTelephoneNumberReason']+HTML.DESCRIPTION_TERM_DETAIL_END+HTML.ROW_END; //canNotProvideMobileNumberReason } return html; @@ -94,12 +88,14 @@ export const applicantCourtCanLeaveVoiceMail = (sessionApplicantData, keys) => { export const otherPeopleAddressParser = (sessionApplicantData) => { - let html = '' as string; + let html = HTML.DESCRIPTION_LIST+HTML.ROW_START_NO_BORDER +HTML.DESCRIPTION_TERM_DETAIL; html += sessionApplicantData.hasOwnProperty('AddressLine1') ? sessionApplicantData['AddressLine1'] + HTML.BREAK : ''; html += sessionApplicantData.hasOwnProperty('AddressLine2') ? sessionApplicantData['AddressLine2'] + HTML.BREAK : ''; html += sessionApplicantData.hasOwnProperty('PostTown') ? sessionApplicantData['PostTown'] + HTML.BREAK : ''; html += sessionApplicantData.hasOwnProperty('County') ? sessionApplicantData['County'] + HTML.BREAK + HTML.BREAK : ''; html += sessionApplicantData.hasOwnProperty('PostCode') ? sessionApplicantData['PostCode'] + HTML.BREAK : ''; - html += sessionApplicantData.hasOwnProperty('Country') ? sessionApplicantData['Country'] + HTML.BREAK : ''; - return html; + html += sessionApplicantData.hasOwnProperty('Country') ? sessionApplicantData['Country'] : ''; + html+=HTML.DESCRIPTION_TERM_DETAIL_END+ HTML.ROW_END; + return html+HTML.DESCRIPTION_LIST_END; }; + diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/safetyConcernHelper.test.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/safetyConcernHelper.test.ts index b5b549f5b8..3762bb64d2 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/safetyConcernHelper.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/safetyConcernHelper.test.ts @@ -74,7 +74,7 @@ describe('test cases for SaftyConcern', () => { const sessionKey = 'sessionKey'; const typeOfUser = 'children'; expect(SafetyConcernsHelper(userCase, keys, sessionKey, childField, typeOfUser, language)).toBe( - '

            childrenConcernedAboutLabel


            behaviourDetailsLabel

            undefined

            behaviourStartDateLabel

            undefined

            isOngoingBehaviourLabel


            seekHelpFromPersonOrAgencyLabel

            ' + '
            childrenConcernedAboutLabel
            behaviourDetailsLabel
            behaviourStartDateLabel
            isOngoingBehaviourLabel
            seekHelpFromPersonOrAgencyLabel
            ' ); }); @@ -92,7 +92,7 @@ describe('test cases for SaftyConcern', () => { }; const typeOfUser = 'child'; expect(HTMLParser(keys, FoundElement, bodyHtml, userCase, typeOfUser, language)).toBe( - '

            childrenConcernedAboutLabel

            • undefined undefined

            behaviourDetailsLabel

            undefined

            behaviourStartDateLabel

            test

            isOngoingBehaviourLabel


            seekHelpFromPersonOrAgencyLabel

            ' + '
            childrenConcernedAboutLabel
            • undefined undefined
            behaviourDetailsLabel
            behaviourStartDateLabel
            test
            isOngoingBehaviourLabel
            seekHelpFromPersonOrAgencyLabel
            ' ); }); @@ -106,7 +106,7 @@ describe('test cases for SaftyConcern', () => { }; const typeOfUser = 'child'; expect(HTMLParser(keys, FoundElement, bodyHtml, userCase, typeOfUser, language)).toBe( - '

            childrenConcernedAboutLabel

            • undefined undefined

            behaviourDetailsLabel

            undefined

            behaviourStartDateLabel

            test

            isOngoingBehaviourLabel


            seekHelpFromPersonOrAgencyLabel

            ' + '
            childrenConcernedAboutLabel
            • undefined undefined
            behaviourDetailsLabel
            behaviourStartDateLabel
            test
            isOngoingBehaviourLabel
            seekHelpFromPersonOrAgencyLabel
            ' ); }); }); diff --git a/src/main/steps/c100-rebuild/check-your-answers/helpers/satetyConcernHelper.ts b/src/main/steps/c100-rebuild/check-your-answers/helpers/satetyConcernHelper.ts index 93ae0305d5..a7423aded3 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/helpers/satetyConcernHelper.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/helpers/satetyConcernHelper.ts @@ -1,8 +1,9 @@ /* eslint-disable import/no-unresolved */ import { C1ASafteyConcernsAbout } from '../../../../app/case/definition'; +import { generateBehaviourDetailsHtml } from '../../../../steps/common/safety-concerns/review/helpers/satetyConcernHelper'; import { HTML } from '../common/htmlSelectors'; import { ANYTYPE } from '../common/index'; -import { getYesNoTranslation } from '../mainUtil'; +import { getYesNoTranslation, isBorderPresent } from '../mainUtil'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export const childNameFormatter = (childId, userCase) => { @@ -15,10 +16,16 @@ export const childNameFormatter = (childId, userCase) => { // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export const HTMLParser = (keys, FoundElement: ANYTYPE, bodyHtml, userCase, typeOfUser, language) => { + bodyHtml += HTML.DESCRIPTION_LIST; if (typeOfUser === 'child') { - bodyHtml += HTML.H4 + keys['childrenConcernedAboutLabel'] + HTML.H4_CLOSE; + bodyHtml += + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['childrenConcernedAboutLabel'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; if (FoundElement.hasOwnProperty('childrenConcernedAbout')) { - bodyHtml += HTML.UNORDER_LIST; + bodyHtml += HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + HTML.UNORDER_LIST; if (Array.isArray(FoundElement['childrenConcernedAbout'])) { bodyHtml += FoundElement['childrenConcernedAbout'] ?.map(childId => childNameFormatter(childId, userCase)) @@ -26,39 +33,51 @@ export const HTMLParser = (keys, FoundElement: ANYTYPE, bodyHtml, userCase, type .split(',') .join(''); } else { - bodyHtml += childNameFormatter(FoundElement['childrenConcernedAbout'], userCase); + bodyHtml += + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + childNameFormatter(FoundElement['childrenConcernedAbout'], userCase); } - bodyHtml += HTML.UNORDER_LIST_END; + bodyHtml += HTML.UNORDER_LIST_END + HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END; } - bodyHtml += HTML.RULER; } - bodyHtml += HTML.H4 + keys['behaviourDetailsLabel'] + HTML.H4_CLOSE; - bodyHtml += HTML.P + FoundElement.hasOwnProperty('behaviourDetails') ? FoundElement['behaviourDetails'] : ''; - bodyHtml += HTML.RULER; - bodyHtml += HTML.H4 + keys['behaviourStartDateLabel'] + HTML.H4_CLOSE; - bodyHtml += HTML.P + FoundElement.hasOwnProperty('behaviourStartDate') && FoundElement['behaviourStartDate']; - bodyHtml += HTML.RULER; - bodyHtml += HTML.H4 + keys['isOngoingBehaviourLabel'] + HTML.H4_CLOSE; + bodyHtml += generateBehaviourDetailsHtml(keys, FoundElement); bodyHtml += FoundElement.hasOwnProperty('isOngoingBehaviour') - ? getYesNoTranslation(language, FoundElement['isOngoingBehaviour'], 'ydyTranslation') - : ''; - bodyHtml += HTML.RULER; - bodyHtml += HTML.H4 + keys['seekHelpFromPersonOrAgencyLabel'] + HTML.H4_CLOSE; - bodyHtml += FoundElement.hasOwnProperty('seekHelpFromPersonOrAgency') - ? HTML.BOTTOM_PADDING_3 + - getYesNoTranslation(language, FoundElement?.['seekHelpFromPersonOrAgency'], 'doTranslation') + - HTML.BOTTOM_PADDING_CLOSE - : ''; + ? HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + getYesNoTranslation(language, FoundElement['isOngoingBehaviour'], 'ydyTranslation') + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + : HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + '' + HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END; bodyHtml += - FoundElement.hasOwnProperty('seekHelpDetails') && FoundElement?.['seekHelpFromPersonOrAgency'] === 'Yes' - ? HTML.H4 + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['seekHelpFromPersonOrAgencyLabel'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END; + bodyHtml += isBorderPresent(FoundElement?.['seekHelpFromPersonOrAgency'], 'Yes'); + bodyHtml += + HTML.DESCRIPTION_TERM_DETAIL + + getYesNoTranslation(language, FoundElement?.['seekHelpFromPersonOrAgency'], 'doTranslation') + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; + + bodyHtml += + FoundElement.hasOwnProperty('seekHelpDetails') && + FoundElement?.['seekHelpFromPersonOrAgency'] === 'Yes' && + FoundElement?.['seekHelpDetails'] + ? HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + keys['details'] + - HTML.H4_CLOSE + - HTML.BOTTOM_TOP_3 + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + FoundElement?.['seekHelpDetails'] + - HTML.BOTTOM_PADDING_CLOSE + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END : ''; - return bodyHtml; + return bodyHtml + HTML.DESCRIPTION_LIST_END; }; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types diff --git a/src/main/steps/c100-rebuild/check-your-answers/lib/lib.ts b/src/main/steps/c100-rebuild/check-your-answers/lib/lib.ts index acfe79a20f..ec19e109e0 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/lib/lib.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/lib/lib.ts @@ -29,6 +29,7 @@ export interface SummaryListRow { key?: string; anchorReference?: string; keyHtml?: string; + visuallyHiddenText?: string; value?: string; valueHtml?: string; changeUrl?: string; @@ -38,6 +39,7 @@ export interface SummaryListRow { export interface SummaryList { title: string; + subTitle?: string; rows: GovUkNunjucksSummary[]; } @@ -58,6 +60,7 @@ export type SummaryListContentWithBoolean = PageContent & { export const getSectionSummaryList = (rows: SummaryListRow[], content: PageContent): GovUkNunjucksSummary[] => { return rows.map(item => { const changeUrl = item.changeUrl; + const visuallyHiddenText = item.visuallyHiddenText; return { key: { ...(item.key ? { text: item.key } : {}), ...(item.keyHtml ? { html: item.keyHtml } : {}) }, value: { ...(item.value ? { text: item.value } : {}), ...(item.valueHtml ? { html: item.valueHtml } : {}) }, @@ -68,7 +71,7 @@ export const getSectionSummaryList = (rows: SummaryListRow[], content: PageConte { href: changeUrl, // text: content.change as string, - visuallyHiddenText: `${item.key}`, + visuallyHiddenText: visuallyHiddenText ?? `${item.key}`, attributes: item.anchorReference ? { id: item.anchorReference, diff --git a/src/main/steps/c100-rebuild/check-your-answers/mainUtil.test.ts b/src/main/steps/c100-rebuild/check-your-answers/mainUtil.test.ts index 504b3d3ec5..b9bc9c4810 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/mainUtil.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/mainUtil.test.ts @@ -97,6 +97,9 @@ const keys = { mediatorConfirmation: 'mediatorConfirmation', midatatorDocumentTitle: 'midatatorDocumentTitle', childInvolvementInSupervision: 'childInvolvementInSupervision', + respondents: 'respondents', + applicantLabel: 'Applicants', + otherPerson: 'Other person', refuge: 'refuge', c8RefugeDocument: 'c8RefugeDocument', }; @@ -202,7 +205,8 @@ describe('test cases for main util', () => { }; expect(ChildernDetails({ sectionTitles, keys, content }, userCase, language)).toStrictEqual({ rows: [], - title: 'ChildernDetails', + title: '', + subTitle: 'ChildernDetails', }); }); //LocationDetails @@ -296,7 +300,7 @@ describe('test cases for main util', () => { }, key: { text: 'whyPermissionRequiredFromCourt' }, value: { - html: '
            • doNotHaveParentalResponsibility: responsnibility subfield
            ', + html: '
            • doNotHaveParentalResponsibility: responsnibility subfield
            ', }, }, { @@ -513,7 +517,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/add-children', text: undefined, - visuallyHiddenText: 'fullName', + visuallyHiddenText: 'child 1 fullName', attributes: {}, }, ], @@ -531,7 +535,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/personal-details', text: undefined, - visuallyHiddenText: 'approxCheckboxLabel', + visuallyHiddenText: 'child 1 approxCheckboxLabel', attributes: {}, }, ], @@ -547,7 +551,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/personal-details', text: undefined, - visuallyHiddenText: 'approxDobLabel', + visuallyHiddenText: 'child 1 approxDobLabel', attributes: {}, }, ], @@ -563,7 +567,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/personal-details', text: undefined, - visuallyHiddenText: 'childGenderLabel', + visuallyHiddenText: 'child 1 childGenderLabel', attributes: {}, }, ], @@ -581,7 +585,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/child-matters', text: undefined, - visuallyHiddenText: 'orderAppliedFor', + visuallyHiddenText: 'child 1 orderAppliedFor', attributes: {}, }, ], @@ -590,7 +594,7 @@ describe('test cases for main util', () => { text: 'orderAppliedFor', }, value: { - html: '
            • relocateChildrenOutsideUk
            ', + html: '
            • relocateChildrenOutsideUk
            ', }, }, { @@ -599,7 +603,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/parental-responsibility', text: undefined, - visuallyHiddenText: 'parentalResponsibility', + visuallyHiddenText: 'child 1 parentalResponsibility', attributes: {}, }, ], @@ -708,7 +712,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/other-children/names', text: undefined, - visuallyHiddenText: 'fullName', + visuallyHiddenText: 'child 1 fullName', attributes: {}, }, ], @@ -726,7 +730,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/other-children/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/personal-details', text: undefined, - visuallyHiddenText: 'dobLabel', + visuallyHiddenText: 'Other child 1 dobLabel', attributes: {}, }, ], @@ -744,7 +748,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/other-children/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/personal-details', text: undefined, - visuallyHiddenText: 'childGenderLabel', + visuallyHiddenText: 'child 1 childGenderLabel', attributes: {}, }, ], @@ -753,7 +757,7 @@ describe('test cases for main util', () => { text: 'childGenderLabel', }, value: { - html: '
            otherGender

            details

            otherGenderDetails', + html: '
            Male
            otherGender
            details

            otherGenderDetails
            ', text: 'Male', }, }, @@ -823,7 +827,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/other-children/names', text: undefined, - visuallyHiddenText: 'fullName', + visuallyHiddenText: 'child 1 fullName', attributes: {}, }, ], @@ -841,7 +845,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/other-children/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/personal-details', text: undefined, - visuallyHiddenText: 'approxCheckboxLabel', + visuallyHiddenText: 'Other child 1 approxCheckboxLabel', attributes: {}, }, ], @@ -855,7 +859,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/other-children/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/personal-details', text: undefined, - visuallyHiddenText: 'approxDobLabel', + visuallyHiddenText: 'Other child 1 approxDobLabel', attributes: {}, }, ], @@ -873,7 +877,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/child-details/other-children/39bc0ed2-503e-4d6e-a957-b57e8f35bc70/personal-details', text: undefined, - visuallyHiddenText: 'childGenderLabel', + visuallyHiddenText: 'child 1 childGenderLabel', attributes: {}, }, ], @@ -883,10 +887,12 @@ describe('test cases for main util', () => { }, value: { text: 'Male', + html: 'Male ', }, }, ], - title: undefined, + title: '', + subTitle: undefined, }); }); @@ -988,7 +994,7 @@ describe('test cases for main util', () => { expect(otherPeopleDetailsObj?.rows).toStrictEqual([ { key: { - html: '

            undefined 1

            ', + html: '

            Other person 1

            ', }, value: {}, }, @@ -998,7 +1004,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/other-person-details/add-other-persons', text: undefined, - visuallyHiddenText: 'fullName', + visuallyHiddenText: 'Other person 1 fullName', attributes: {}, }, ], @@ -1016,7 +1022,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/other-person-details/3b32bc4f-7417-443b-ba94-5eacfcee04c4/personal-details', text: undefined, - visuallyHiddenText: 'hasNameChanged', + visuallyHiddenText: 'Other person 1 hasNameChanged', attributes: {}, }, ], @@ -1032,7 +1038,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/other-person-details/3b32bc4f-7417-443b-ba94-5eacfcee04c4/personal-details', text: undefined, - visuallyHiddenText: 'childGenderLabel', + visuallyHiddenText: 'Other person 1 childGenderLabel', attributes: {}, }, ], @@ -1041,7 +1047,7 @@ describe('test cases for main util', () => { text: 'childGenderLabel', }, value: { - html: '

            otherGender

            details


            undefined', + html: '
            otherGender
            details

            undefined
            ', }, }, { @@ -1050,7 +1056,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/other-person-details/3b32bc4f-7417-443b-ba94-5eacfcee04c4/personal-details', text: undefined, - visuallyHiddenText: 'dobLabel', + visuallyHiddenText: 'Other person 1 dobLabel', attributes: {}, }, ], @@ -1068,7 +1074,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/other-person-details/3b32bc4f-7417-443b-ba94-5eacfcee04c4/relationship-to-child/39bc0ed2-503e-4d6e-a957-b57e8f35bc70', text: undefined, - visuallyHiddenText: 'relationshipTo Nir Sin', + visuallyHiddenText: 'Other person 1 relationshipTo Nir Sin', attributes: {}, }, ], @@ -1086,7 +1092,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/refuge/staying-in-refuge/3b32bc4f-7417-443b-ba94-5eacfcee04c4?', text: undefined, - visuallyHiddenText: 'refuge', + visuallyHiddenText: 'Other person 1 refuge', attributes: {}, }, ], @@ -1104,7 +1110,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/refuge/upload-refuge-document/3b32bc4f-7417-443b-ba94-5eacfcee04c4', text: undefined, - visuallyHiddenText: 'c8RefugeDocument', + visuallyHiddenText: 'Other person 1 c8RefugeDocument', attributes: { id: 'c8RefugeDocument-otherPerson-0', }, @@ -1124,7 +1130,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/other-person-details/3b32bc4f-7417-443b-ba94-5eacfcee04c4/address/manual', text: undefined, - visuallyHiddenText: 'addressDetails', + visuallyHiddenText: 'Other person 1 addressDetails', attributes: {}, }, ], @@ -1133,7 +1139,7 @@ describe('test cases for main util', () => { text: 'addressDetails', }, value: { - html: 'addressLine1
            addressLine2
            postTown
            county

            ', + html: '
            addressLine1
            addressLine2
            postTown
            county

            ', }, }, ]); @@ -1148,7 +1154,7 @@ describe('test cases for main util', () => { test('otherPeopleDetailsTitle', () => { const otherPeopleDetailsTitleObj = OtherPeopleDetailsTitle({ sectionTitles, keys, content }, {}, language); expect(otherPeopleDetailsTitleObj?.rows).not.toBe([]); - expect(otherPeopleDetailsTitleObj?.title).toBe(undefined); + expect(otherPeopleDetailsTitleObj?.title).toBe(''); }); //ChildernDetailsAdditional @@ -1166,7 +1172,7 @@ describe('test cases for main util', () => { language ); expect(childernDetailsAdditionalObj?.rows).not.toBe([]); - expect(childernDetailsAdditionalObj?.title).toBe(undefined); + expect(childernDetailsAdditionalObj?.title).toBe(''); }); test('whoDoesChildMainlyLiveWith should have correct details', () => { @@ -1222,7 +1228,7 @@ describe('test cases for main util', () => { text: "Bob Silly's living arrangements", }, value: { - html: '
              undefined
            ', + html: '
              undefined
            ', }, }, ]); @@ -1313,7 +1319,7 @@ describe('test cases for main util', () => { text: "Bob Silly's living arrangements", }, value: { - html: '
            • test parent
            ', + html: '
            • test parent
            ', }, }, ]); @@ -1378,7 +1384,7 @@ describe('test cases for main util', () => { } as ANYTYPE; const respondentDetailsObj = RespondentDetails({ sectionTitles, keys, content }, userCase, language); expect(respondentDetailsObj?.rows).not.toBe([]); - expect(respondentDetailsObj?.title).toBe(undefined); + expect(respondentDetailsObj?.title).toBe(''); }); //SafetyConcerns @@ -1429,7 +1435,7 @@ describe('test cases for main util', () => { }, key: {}, value: { - html: '
            • undefined
            • undefined
            • undefined
            ', + html: '
            • undefined
            • undefined
            • undefined
            ', }, }, { @@ -1506,7 +1512,7 @@ describe('test cases for main util', () => { }, key: {}, value: { - html: 'Yes

            undefined


            undefined

            • Father
            ', + html: '
            Yes
            undefined
            undefined
            • Father

          ', }, }, { @@ -1570,11 +1576,11 @@ describe('test cases for main util', () => { text: 'c1A_policeOrInvestigatorInvolved', }, value: { - html: '

          details

          c1A_policeOrInvestigatorOtherDetails', + html: '
          details
          c1A_policeOrInvestigatorOtherDetails
          ', }, }, ]); - expect(safetyConcerns_childObj?.title).toBe(undefined); + expect(safetyConcerns_childObj?.title).toBe(''); }); test('SafetyConcerns_child should return correct values when c1A_possessionChildrenPassport is other', () => { @@ -1603,7 +1609,7 @@ describe('test cases for main util', () => { }, key: {}, value: { - html: '
            ', + html: '
              ', }, }, ]); @@ -1674,7 +1680,7 @@ describe('test cases for main util', () => { expect(respondentDetailsObj?.rows).toStrictEqual([ { key: { - html: '

              undefined 1

              ', + html: '

              respondents 1

              ', }, value: {}, }, @@ -1684,7 +1690,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/add-respondents', text: undefined, - visuallyHiddenText: 'fullName', + visuallyHiddenText: 'respondents 1 fullName', attributes: {}, }, ], @@ -1702,7 +1708,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/personal-details', text: undefined, - visuallyHiddenText: 'hasNameChanged', + visuallyHiddenText: 'respondents 1 hasNameChanged', attributes: {}, }, ], @@ -1720,7 +1726,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/personal-details', text: undefined, - visuallyHiddenText: 'childGenderLabel', + visuallyHiddenText: 'respondents 1 childGenderLabel', attributes: {}, }, ], @@ -1738,7 +1744,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/personal-details', text: undefined, - visuallyHiddenText: 'approxCheckboxLabel', + visuallyHiddenText: 'respondents 1 approxCheckboxLabel', attributes: {}, }, ], @@ -1756,7 +1762,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/personal-details', text: undefined, - visuallyHiddenText: 'approxDobLabel', + visuallyHiddenText: 'respondents 1 approxDobLabel', attributes: {}, }, ], @@ -1772,7 +1778,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/personal-details', text: undefined, - visuallyHiddenText: 'respondentPlaceOfBirthUnknown', + visuallyHiddenText: 'respondents 1 respondentPlaceOfBirthUnknown', attributes: {}, }, ], @@ -1790,7 +1796,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/relationship-to-child/39bc0ed2-503e-4d6e-a957-b57e8f35bc70', text: undefined, - visuallyHiddenText: 'relationshipTo Nir Sin', + visuallyHiddenText: 'respondents 1 relationshipTo Nir Sin', attributes: {}, }, ], @@ -1808,7 +1814,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/address/manual', text: undefined, - visuallyHiddenText: 'addressDetails', + visuallyHiddenText: 'respondents 1 addressDetails', attributes: {}, }, ], @@ -1817,7 +1823,7 @@ describe('test cases for main util', () => { text: 'addressDetails', }, value: { - html: 'dsadas
              ILFORD
              United Kingdom

              undefined

              ', + html: '
              dsadas
              ILFORD
              United Kingdom
              undefined
              Don\'t know
              ', }, }, { @@ -1826,7 +1832,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/contact-details', text: undefined, - visuallyHiddenText: 'E-mail', + visuallyHiddenText: 'respondents 1 E-mail', attributes: {}, }, ], @@ -1844,7 +1850,7 @@ describe('test cases for main util', () => { { href: '/c100-rebuild/respondent-details/974b73a9-730e-4db0-b703-19ed3eab0342/contact-details', text: undefined, - visuallyHiddenText: 'Telephone number', + visuallyHiddenText: 'respondents 1 Telephone number', attributes: {}, }, ], @@ -1857,7 +1863,7 @@ describe('test cases for main util', () => { }, }, ]); - expect(respondentDetailsObj?.title).toBe(undefined); + expect(respondentDetailsObj?.title).toBe(''); }); //SafetyConcerns_yours @@ -1873,7 +1879,7 @@ describe('test cases for main util', () => { language ); expect(safetyConcerns_yoursObj?.rows).not.toBe([]); - expect(safetyConcerns_yoursObj?.title).toBe(undefined); + expect(safetyConcerns_yoursObj?.title).toBe(''); }); test('MiamAttendance - util', () => { const userCase = { @@ -1882,7 +1888,7 @@ describe('test cases for main util', () => { } as ANYTYPE; const CaseName_fun = MiamAttendance({ sectionTitles, keys, Yes: 'Yes', No: 'No', content }, userCase, language); expect(CaseName_fun?.rows).not.toBe([]); - expect(CaseName_fun?.title).toBe('MiamAttendance'); + expect(CaseName_fun?.subTitle).toBe('MiamAttendance'); }); test('MiamAttendance - util > miam_otherProceedings > No', () => { @@ -1894,7 +1900,7 @@ describe('test cases for main util', () => { } as ANYTYPE; const CaseName_fun = MiamAttendance({ sectionTitles, keys, Yes: 'Yes', No: 'No', content }, userCase, language); expect(CaseName_fun?.rows).not.toBe([]); - expect(CaseName_fun?.title).toBe('MiamAttendance'); + expect(CaseName_fun?.subTitle).toBe('MiamAttendance'); }); test('MiamAttendance - util > miam_attendance > Yes', () => { @@ -1907,7 +1913,7 @@ describe('test cases for main util', () => { } as ANYTYPE; const CaseName_fun = MiamAttendance({ sectionTitles, keys, Yes: 'Yes', No: 'No', content }, userCase, language); expect(CaseName_fun?.rows).not.toBe([]); - expect(CaseName_fun?.title).toBe('MiamAttendance'); + expect(CaseName_fun?.subTitle).toBe('MiamAttendance'); }); test('MiamAttendance - util > miam_attendance > No', () => { @@ -1974,7 +1980,7 @@ describe('test cases for main util', () => { }, }, ]); - expect(CaseName_fun?.title).toBe('MiamAttendance'); + expect(CaseName_fun?.subTitle).toBe('MiamAttendance'); }); test('MiamAttendance - util > miam_attendance > Yes > miam_mediatorDocument > No', () => { @@ -1987,7 +1993,7 @@ describe('test cases for main util', () => { } as ANYTYPE; const CaseName_fun = MiamAttendance({ sectionTitles, keys, Yes: 'Yes', No: 'No', content }, userCase, language); expect(CaseName_fun?.rows).not.toBe([]); - expect(CaseName_fun?.title).toBe('MiamAttendance'); + expect(CaseName_fun?.subTitle).toBe('MiamAttendance'); }); test('InternationalElement - util', () => { @@ -2105,7 +2111,7 @@ describe('test cases for main util', () => { text: 'childDrugAbuse', }, value: { - html: '

              details

              c1A_otherConcernsDrugsDetails
              ', + html: '
              details
              c1A_otherConcernsDrugsDetails
              ', }, }, { @@ -2123,7 +2129,7 @@ describe('test cases for main util', () => { text: 'otherWellBeingIssues', }, value: { - html: '

              details

              c1A_childSafetyConcernsDetails
              ', + html: '
              details
              c1A_childSafetyConcernsDetails
              ', }, }, { diff --git a/src/main/steps/c100-rebuild/check-your-answers/mainUtil.ts b/src/main/steps/c100-rebuild/check-your-answers/mainUtil.ts index d931ae2e2b..c9d034d876 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/mainUtil.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/mainUtil.ts @@ -224,8 +224,7 @@ export const ChildernDetails = ( language ): SummaryList | undefined => { const sessionChildData = userCase['cd_children']; - const newChildDataStorage: { key: string; keyHtml?: string; value: string; valueHtml?: string; changeUrl: string }[] = - []; + let newChildDataStorage: SummaryListRow[] = []; for (const child in sessionChildData) { const firstname = sessionChildData[child]['firstName'], lastname = sessionChildData[child]['lastName'], @@ -254,39 +253,62 @@ export const ChildernDetails = ( }, { key: keys['fullName'], + visuallyHiddenText: `${keys['child']} ${parseInt(child) + 1} ${keys['fullName']}`, value: firstname + ' ' + lastname, changeUrl: Urls['C100_CHILDERN_DETAILS_ADD'], } ); - populateDateOfBirth(personalDetails, newChildDataStorage, keys, language, id, true); + newChildDataStorage = newChildDataStorage.concat( + populateDateOfBirth(personalDetails, keys, language, id, true, parseInt(child) + 1, `${keys['child']}`) + ); + const childName = ` ${firstname} ${lastname} `; newChildDataStorage.push( { key: keys['childGenderLabel'], + visuallyHiddenText: `${keys['child']} ${parseInt(child) + 1} ${keys['childGenderLabel']}`, value: '', valueHtml: personalDetails.hasOwnProperty('otherGenderDetails') && personalDetails.otherGenderDetails !== '' - ? translation(personalDetails?.['gender'], language) + - HTML.BREAK + - HTML.RULER + + ? HTML.DESCRIPTION_LIST + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + translation(personalDetails?.['gender'], language) + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + keys['otherGender'] + - HTML.H4 + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + keys['details'] + - HTML.H4_CLOSE + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + HTML.BREAK + - personalDetails['otherGenderDetails'] + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + personalDetails['otherGenderDetails'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.DESCRIPTION_LIST_END : translation(personalDetails?.['gender'], language), changeUrl: applyParms(Urls['C100_CHILDERN_DETAILS_PERSONAL_DETAILS'], { childId: id }), }, { key: keys['orderAppliedFor'], + visuallyHiddenText: `${keys['child']} ${parseInt(child) + 1} ${keys['orderAppliedFor']}`, value: '', valueHtml: childResolution?.split(',').join(''), changeUrl: applyParms(Urls['C100_CHILDERN_DETAILS_CHILD_MATTERS'], { childId: id }), }, { - key: keys['parentalResponsibility']?.split('[^^^]').join(` ${firstname} ${lastname} `), + key: keys['parentalResponsibility']?.split('[^^^]').join(childName), + visuallyHiddenText: `${keys['child']} ${parseInt(child) + 1} ${keys['parentalResponsibility'] + ?.split('[^^^]') + .join(childName)}`, value: parentialResponsibility['statement'], changeUrl: applyParms(Urls['C100_CHILDERN_DETAILS_PARENTIAL_RESPONSIBILITY'], { childId: id }), } @@ -294,7 +316,8 @@ export const ChildernDetails = ( } const SummaryData = newChildDataStorage; return { - title: sectionTitles['ChildernDetails'], + title: '', + subTitle: sectionTitles['ChildernDetails'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -305,20 +328,30 @@ export const ChildernDetailsAdditional = ( userCase: Partial, language ): SummaryList | undefined => { - let htmlForAdditionalText = ''; - htmlForAdditionalText = getYesNoTranslation( + let htmlForAdditionalText = userCase.hasOwnProperty('cd_childrenKnownToSocialServicesDetails') + ? HTML.DESCRIPTION_LIST + HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + : ''; + htmlForAdditionalText += getYesNoTranslation( language, userCase?.['cd_childrenKnownToSocialServices'], 'ydynTranslation' ); - htmlForAdditionalText += HTML.BREAK; htmlForAdditionalText += userCase.hasOwnProperty('cd_childrenKnownToSocialServicesDetails') - ? HTML.RULER + - HTML.H4 + + ? HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.BREAK + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + keys['details'] + - HTML.H4_CLOSE + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + HTML.BREAK + - userCase['cd_childrenKnownToSocialServicesDetails'] + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + userCase['cd_childrenKnownToSocialServicesDetails'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.DESCRIPTION_LIST_END : ''; const SummaryData = [ @@ -335,7 +368,8 @@ export const ChildernDetailsAdditional = ( }, ]; return { - title: sectionTitles['additionationDetailsAboutChildern'], + title: '', + subTitle: sectionTitles['additionationDetailsAboutChildern'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -347,8 +381,7 @@ export const OtherChildrenDetails = ( language ): SummaryList | undefined => { const sessionChildData = userCase['ocd_otherChildren']; - const newChildDataStorage: { key: string; keyHtml?: string; value: string; valueHtml?: string; changeUrl: string }[] = - []; + let newChildDataStorage: SummaryListRow[] = []; newChildDataStorage.push({ key: keys['hasOtherChildren'], @@ -372,25 +405,18 @@ export const OtherChildrenDetails = ( { key: keys['fullName'], value: firstname + ' ' + lastname, + visuallyHiddenText: `${keys['child']} ${parseInt(child) + 1} ${keys['fullName']}`, changeUrl: Urls['C100_CHILDERN_OTHER_CHILDREN_NAMES'], } ); - populateDateOfBirth(personalDetails, newChildDataStorage, keys, language, id, false); + newChildDataStorage = newChildDataStorage.concat( + populateDateOfBirth(personalDetails, keys, language, id, false, parseInt(child) + 1, 'Other child') + ); newChildDataStorage.push({ key: keys['childGenderLabel'], + visuallyHiddenText: `${keys['child']} ${parseInt(child) + 1} ${keys['childGenderLabel']}`, value: translation(personalDetails?.['gender'], language), - valueHtml: - translation(personalDetails?.['gender'], language) + - ' ' + - personalDetails.hasOwnProperty('otherGenderDetails') && personalDetails.otherGenderDetails !== '' - ? HTML.BREAK + - keys['otherGender'] + - HTML.RULER + - HTML.H4 + - keys['details'] + - HTML.H4_CLOSE + - personalDetails['otherGenderDetails'] - : '', + valueHtml: generateGenderHtml(personalDetails, keys, language), changeUrl: applyParms(Urls['C100_CHILDERN_OTHER_CHILDREN_PERSONAL_DETAILS'], { childId: id }), }); } @@ -398,24 +424,54 @@ export const OtherChildrenDetails = ( const SummaryData = newChildDataStorage; return { - title: sectionTitles['otherChildernDetails'], + title: '', + subTitle: sectionTitles['otherChildernDetails'], rows: getSectionSummaryList(SummaryData, content), }; }; +const generateGenderHtml = (personalDetails, keys: Record, language: string): string => { + return personalDetails.hasOwnProperty('otherGenderDetails') && personalDetails.otherGenderDetails !== '' + ? HTML.DESCRIPTION_LIST + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + translation(personalDetails?.['gender'], language) + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + keys['otherGender'] + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['details'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.BREAK + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + personalDetails['otherGenderDetails'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.DESCRIPTION_LIST_END + : translation(personalDetails?.['gender'], language) + ' '; +}; + export const ApplicantDetailNameParser = (personalDetails, keys, language): string => { let changeNameInformation = ''; - const hasNameChanged = getYesNoTranslation(language, personalDetails['haveYouChangeName'], 'doTranslation'); - changeNameInformation += hasNameChanged; + changeNameInformation += + personalDetails['haveYouChangeName'] === 'Yes' + ? HTML.DESCRIPTION_LIST + HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + : ''; + changeNameInformation += getYesNoTranslation(language, personalDetails['haveYouChangeName'], 'doTranslation'); if (personalDetails['haveYouChangeName'] === 'Yes') { const changedName = personalDetails['applPreviousName']; - changeNameInformation += HTML.RULER; - changeNameInformation += HTML.H4; + changeNameInformation += + HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END + HTML.ROW_START_NO_BORDER + HTML.DESCRIPTION_TERM_ELEMENT; changeNameInformation += keys['details']; - changeNameInformation += HTML.H4_CLOSE; - changeNameInformation += HTML.BOTTOM_PADDING_3; + changeNameInformation += HTML.DESCRIPTION_TERM_ELEMENT_END + HTML.ROW_END; + changeNameInformation += HTML.BREAK + HTML.ROW_START_NO_BORDER + HTML.DESCRIPTION_TERM_DETAIL; changeNameInformation += changedName; - changeNameInformation += HTML.BOTTOM_PADDING_CLOSE; + changeNameInformation += HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END + HTML.DESCRIPTION_LIST_END; } return changeNameInformation; }; @@ -428,8 +484,9 @@ export const ApplicantDetails = ( const sessionApplicantData = userCase['appl_allApplicants']; const newApplicantData: { key: string; - anchorReference?: string; keyHtml?: string; + visuallyHiddenText?: string; + anchorReference?: string; value: string; valueHtml?: string; changeUrl: string; @@ -444,18 +501,27 @@ export const ApplicantDetails = ( const applicantId = sessionApplicantData[applicant]['id']; const parseStartAndStartAlternativeSubFields = (key, keyArray) => { let html = ''; - html += getYesNoTranslation(language, sessionApplicantData[applicant][key], 'ydwTranslation'); + html += + HTML.DESCRIPTION_LIST + + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + getYesNoTranslation(language, sessionApplicantData[applicant][key], 'ydwTranslation') + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; if (sessionApplicantData[applicant][keyArray].length > 0) { html += - HTML.RULER + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + HTML.UNORDER_LIST + sessionApplicantData[applicant][keyArray] ?.map(item => HTML.LIST_ITEM + translation(item, language) + HTML.LIST_ITEM_END) .toString() .split(',') - .join(''); + .join('') + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; } - return html; + return html + HTML.DESCRIPTION_LIST_END; }; newApplicantData.push( @@ -467,16 +533,19 @@ export const ApplicantDetails = ( }, { key: keys['fullName'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['fullName']}`, value: fullname, changeUrl: Urls['C100_APPLICANT_ADD_APPLICANTS'], }, { key: keys['anyOtherPeopleKnowDetails'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['anyOtherPeopleKnowDetails']}`, value: getYesNoTranslation(language, sessionApplicantData[applicant]['detailsKnown'], 'ydyntTranslation'), changeUrl: applyParms(Urls['C100_APPLICANT_ADD_APPLICANTS_CONFIDENTIALITY_DETAILS_KNOW'], { applicantId }), }, { key: keys['doYouWantToKeep'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['doYouWantToKeep']}`, value: '', valueHtml: sessionApplicantData[applicant]['detailsKnown'] === 'Yes' @@ -489,34 +558,27 @@ export const ApplicantDetails = ( }, { key: keys['haveYouChangeNameLabel'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['haveYouChangeNameLabel']}`, value: '', valueHtml: ApplicantDetailNameParser(personalDetails, keys, language), changeUrl: applyParms(Urls['C100_APPLICANTS_PERSONAL_DETAILS'], { applicantId }), }, { key: keys['childGenderLabel'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['childGenderLabel']}`, value: '', - valueHtml: - personalDetails.hasOwnProperty('otherGenderDetails') && personalDetails.otherGenderDetails !== '' - ? translation(personalDetails?.['gender'], language) + - HTML.BREAK + - HTML.RULER + - keys['otherGender'] + - HTML.H4 + - keys['details'] + - HTML.H4_CLOSE + - HTML.BREAK + - personalDetails['otherGenderDetails'] - : translation(personalDetails?.['gender'], language), + valueHtml: generateGenderHtml(personalDetails, keys, language), changeUrl: applyParms(Urls['C100_APPLICANTS_PERSONAL_DETAILS'], { applicantId }), }, { key: keys['dobLabel'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['dobLabel']}`, value: DATE_FORMATTOR(personalDetails['dateOfBirth'], language), changeUrl: applyParms(Urls['C100_APPLICANTS_PERSONAL_DETAILS'], { applicantId }), }, { key: keys['respondentPlaceOfBirth'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['respondentPlaceOfBirth']}`, value: personalDetails?.['applicantPlaceOfBirth'], changeUrl: applyParms(Urls['C100_APPLICANTS_PERSONAL_DETAILS'], { applicantId }), } @@ -529,6 +591,9 @@ export const ApplicantDetails = ( const childFullName = childDetails?.['firstName'] + ' ' + childDetails?.['lastName']; newApplicantData.push({ key: keys['relationshipTo'] + ' ' + childFullName, + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${ + keys['relationshipTo'] + ' ' + childFullName + }`, value: translation(element['relationshipType'], language), valueHtml: element['relationshipType'] === 'Other' @@ -541,8 +606,10 @@ export const ApplicantDetails = ( }); }); + const applicantFullName = ` ${fullname} `; newApplicantData.push({ key: keys['refuge'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['refuge']}`, value: getYesNoTranslation(language, sessionApplicantData[applicant]['liveInRefuge'], 'ydwTranslation'), changeUrl: applyParms(Urls.STAYING_IN_REFUGE, { root: RootContext.C100_REBUILD, @@ -553,6 +620,7 @@ export const ApplicantDetails = ( if (sessionApplicantData[applicant]['liveInRefuge'] === YesOrNo.YES) { newApplicantData.push({ key: keys['c8RefugeDocument'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['c8RefugeDocument']}`, anchorReference: `c8RefugeDocument-applicant-${applicant}`, value: '', valueHtml: !_.isEmpty(sessionApplicantData[applicant]['refugeConfidentialityC8Form']) @@ -567,6 +635,7 @@ export const ApplicantDetails = ( newApplicantData.push({ key: keys['addressDetails'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['addressDetails']}`, value: '', valueHtml: applicantAddressParser(sessionApplicantData[applicant], keys, language), changeUrl: applyParms(Urls['C100_APPLICANT_ADDRESS_MANUAL'], { @@ -576,7 +645,10 @@ export const ApplicantDetails = ( newApplicantData.push( { - key: keys['contactDetailsOf'].split('[^applicantName^]').join(` ${fullname} `), + key: keys['contactDetailsOf'].split('[^applicantName^]').join(applicantFullName), + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['contactDetailsOf'] + .split('[^applicantName^]') + .join(applicantFullName)}`, value: '', valueHtml: applicantContactDetailsParser(sessionApplicantData[applicant].applicantContactDetail, keys), changeUrl: applyParms(Urls['C100_APPLICANT_CONTACT_DETAIL'], { @@ -585,6 +657,7 @@ export const ApplicantDetails = ( }, { key: keys['voiceMailLabel'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['voiceMailLabel']}`, value: '', valueHtml: applicantCourtCanLeaveVoiceMail(sessionApplicantData[applicant].applicantContactDetail, keys), changeUrl: applyParms(Urls['C100_APPLICANT_CONTACT_DETAIL'], { @@ -593,6 +666,7 @@ export const ApplicantDetails = ( }, { key: keys['contactPrefernces'], + visuallyHiddenText: `${keys['applicantLabel']} ${parseInt(applicant) + 1} ${keys['contactPrefernces']}`, value: contactTranslation( sessionApplicantData[applicant].applicantContactDetail?.applicantContactPreferences === ContactPreference.EMAIL @@ -607,17 +681,18 @@ export const ApplicantDetails = ( ); } return { - title: sectionTitles['ApplicantDetails'], + title: '', + subTitle: sectionTitles['ApplicantDetails'], rows: getSectionSummaryList(newApplicantData, content), }; }; /* eslint-disable import/namespace */ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -export const MiamTitle = ({ sectionTitles, keys, Yes, No, ...content }): SummaryList | undefined => { +export const MiamTitle = ({ sectionTitles }): SummaryList | undefined => { return { title: sectionTitles['Miam'], - rows: getSectionSummaryList([], content), + rows: [], }; }; @@ -660,7 +735,8 @@ export const MiamAttendance = ( } return { - title: sectionTitles['MiamAttendance'], + title: '', + subTitle: sectionTitles['MiamAttendance'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -680,7 +756,8 @@ export const MiamExemption = ( ...MiamHelper.miamExemptionParserDynamicEnteries(userCase, keys, language), ]; return { - title: sectionTitles['MiamExemption'], + title: '', + subTitle: sectionTitles['MiamExemption'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -756,7 +833,7 @@ export const SafetyConcerns = ( language ): SummaryList | undefined => { const dataForConcerns = userCase.hasOwnProperty('c1A_safetyConernAbout') - ? userCase['c1A_safetyConernAbout']?.map(concern => HTML.NESTED_LIST_ITEM + keys[concern] + HTML.LIST_ITEM_END) + ? userCase['c1A_safetyConernAbout']?.map(concern => HTML.LIST_ITEM + keys[concern] + HTML.LIST_ITEM_END) : ''; const SummaryData = [ { @@ -796,7 +873,7 @@ export const SafetyConcerns_child = ( language ): SummaryList | undefined => { const childSafetyConcerns = userCase.hasOwnProperty('c1A_concernAboutChild') - ? userCase['c1A_concernAboutChild']?.map(concern => HTML.NESTED_LIST_ITEM + keys[concern] + HTML.LIST_ITEM_END) + ? userCase['c1A_concernAboutChild']?.map(concern => HTML.LIST_ITEM + keys[concern] + HTML.LIST_ITEM_END) : ''; let subFields = userCase['c1A_concernAboutChild'] as ANYTYPE; subFields = subFields @@ -844,35 +921,53 @@ export const SafetyConcerns_child = ( /** * @policeOrInvestigatorsOtherDetails session Values */ - let policeOrInvestigatorsOtherDetailsHTML = ''; + let policeOrInvestigatorsOtherDetailsHTML = userCase.hasOwnProperty('c1A_policeOrInvestigatorOtherDetails') + ? HTML.DESCRIPTION_LIST + HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL + : ''; policeOrInvestigatorsOtherDetailsHTML += getYesNoTranslation( language, userCase['c1A_policeOrInvestigatorInvolved'], 'oeddTranslation' ); policeOrInvestigatorsOtherDetailsHTML += userCase.hasOwnProperty('c1A_policeOrInvestigatorOtherDetails') - ? HTML.RULER + HTML.H4 + keys['details'] + HTML.H4_CLOSE + userCase['c1A_policeOrInvestigatorOtherDetails'] + ? HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_ELEMENT + + keys['details'] + + HTML.DESCRIPTION_TERM_ELEMENT_END + + HTML.ROW_END + + HTML.ROW_START_NO_BORDER + + HTML.DESCRIPTION_TERM_DETAIL + + userCase['c1A_policeOrInvestigatorOtherDetails'] + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END + + HTML.DESCRIPTION_LIST_END : ''; + /** * @c1A_childAbductedBefore session Values */ - let c1A_childAbductedBefore = ''; - c1A_childAbductedBefore += getYesNoTranslation(language, userCase?.['c1A_passportOffice'], 'oesTranslation'); + let c1A_childAbductedBefore = HTML.DESCRIPTION_LIST as string; + c1A_childAbductedBefore += isBorderPresent(userCase.c1A_passportOffice, 'Yes'); + c1A_childAbductedBefore += + HTML.DESCRIPTION_TERM_DETAIL + + getYesNoTranslation(language, userCase?.['c1A_passportOffice'], 'oesTranslation') + + HTML.DESCRIPTION_TERM_DETAIL_END + + HTML.ROW_END; if (userCase.hasOwnProperty('c1A_passportOffice') && userCase.c1A_passportOffice === 'Yes') { - c1A_childAbductedBefore += HTML.RULER; - c1A_childAbductedBefore += HTML.H4; + c1A_childAbductedBefore += HTML.ROW_START_NO_BORDER + HTML.DESCRIPTION_TERM_ELEMENT; c1A_childAbductedBefore += keys['childrenMoreThanOnePassport']; - c1A_childAbductedBefore += HTML.H4_CLOSE; - c1A_childAbductedBefore += getYesNoTranslation( - language, - userCase['c1A_childrenMoreThanOnePassport'], - 'oesTranslation' - ); - c1A_childAbductedBefore += HTML.RULER; - c1A_childAbductedBefore += HTML.H4; + c1A_childAbductedBefore += HTML.DESCRIPTION_TERM_ELEMENT_END + HTML.ROW_END; + c1A_childAbductedBefore += + HTML.ROW_START + + HTML.DESCRIPTION_TERM_DETAIL + + getYesNoTranslation(language, userCase['c1A_childrenMoreThanOnePassport'], 'oesTranslation'); + c1A_childAbductedBefore += HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END; + c1A_childAbductedBefore += HTML.ROW_START_NO_BORDER + HTML.DESCRIPTION_TERM_ELEMENT; c1A_childAbductedBefore += keys['possessionChildrenPassport']; - c1A_childAbductedBefore += HTML.H4_CLOSE; - c1A_childAbductedBefore += HTML.UNORDER_LIST; + c1A_childAbductedBefore += HTML.DESCRIPTION_TERM_ELEMENT_END + HTML.ROW_END; + c1A_childAbductedBefore += HTML.ROW_START_NO_BORDER + HTML.DESCRIPTION_TERM_DETAIL + HTML.UNORDER_LIST; if (userCase['c1A_possessionChildrenPassport']) { c1A_childAbductedBefore += userCase['c1A_possessionChildrenPassport'] @@ -886,9 +981,9 @@ export const SafetyConcerns_child = ( c1A_childAbductedBefore += HTML.LIST_ITEM + userCase['c1A_provideOtherDetails'] + HTML.LIST_ITEM_END; } } - c1A_childAbductedBefore += HTML.UNORDER_LIST_END; + c1A_childAbductedBefore += HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END + HTML.UNORDER_LIST_END; } - + c1A_childAbductedBefore += HTML.DESCRIPTION_LIST_END; const abdutionScreenData = [ { key: keys['childLocation'], @@ -952,7 +1047,8 @@ export const SafetyConcerns_child = ( SummaryData.push(...abdutionScreenData); } return { - title: sectionTitles['childSafetyConcerns'], + title: '', + subTitle: sectionTitles['childSafetyConcerns'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -970,7 +1066,7 @@ export const SafetyConcerns_yours = ( language ): SummaryList | undefined => { const childSafetyConcerns = userCase.hasOwnProperty('c1A_concernAboutApplicant') - ? userCase['c1A_concernAboutApplicant']?.map(concern => HTML.NESTED_LIST_ITEM + keys[concern] + HTML.LIST_ITEM_END) + ? userCase['c1A_concernAboutApplicant']?.map(concern => HTML.LIST_ITEM + keys[concern] + HTML.LIST_ITEM_END) : ''; let subFields = userCase?.['c1A_concernAboutApplicant'] as ANYTYPE; subFields = subFields @@ -1018,7 +1114,8 @@ export const SafetyConcerns_yours = ( SummaryData.push(...subFields); } return { - title: sectionTitles['yourSafetyConcerns'], + title: '', + subTitle: sectionTitles['yourSafetyConcerns'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -1036,18 +1133,21 @@ export const SafetyConcerns_others = ( language ): SummaryList | undefined => { const fieldParser = (field, fieldDescription?) => { - let html = ''; + let html = + fieldDescription !== undefined ? HTML.DESCRIPTION_LIST + HTML.ROW_START + HTML.DESCRIPTION_TERM_DETAIL : ''; if (field !== undefined) { html += field; } if (fieldDescription !== undefined) { - html += HTML.RULER; - html += HTML.H4; + html += HTML.DESCRIPTION_TERM_DETAIL_END; + html += HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER; + html += HTML.DESCRIPTION_TERM_ELEMENT; html += keys['details']; - html += HTML.H4_CLOSE; - html += HTML.BOTTOM_PADDING_3; + html += HTML.DESCRIPTION_TERM_ELEMENT_END + HTML.ROW_END; + html += HTML.ROW_START_NO_BORDER + HTML.DESCRIPTION_TERM_DETAIL; html += fieldDescription; - html += HTML.BOTTOM_PADDING_CLOSE; + html += HTML.DESCRIPTION_TERM_DETAIL_END + HTML.ROW_END + HTML.DESCRIPTION_LIST_END; } return html; }; @@ -1094,7 +1194,8 @@ export const SafetyConcerns_others = ( }, ]; return { - title: sectionTitles['otherSafetyConcerns'], + title: '', + subTitle: sectionTitles['otherSafetyConcerns'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -1111,6 +1212,7 @@ const RespondentDetails_AddressAndPersonal = ( if (!sessionRespondentData[respondent].hasOwnProperty('addressUnknown')) { newRespondentStorage.push({ key: keys['addressDetails'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['addressDetails']}`, value: '', valueHtml: applicantAddressParserForRespondents(sessionRespondentData[respondent].address, keys, language), changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_ADDRESS_MANUAL'], { respondentId: id }), @@ -1122,18 +1224,23 @@ const RespondentDetails_AddressAndPersonal = ( ) { newRespondentStorage.push({ key: keys['explainYesLabel'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['explainYesLabel']}`, value: getYesNoTranslation(language, sessionRespondentData[respondent]?.['addressUnknown'], 'doTranslation'), changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_ADDRESS_MANUAL'], { respondentId: id }), }); } - newRespondentStorage.push(respondentTelephoneEmailDetails(contactDetails, id, language, false)); - newRespondentStorage.push(respondentTelephoneEmailDetails(contactDetails, id, language, true)); + newRespondentStorage.push( + respondentTelephoneEmailDetails(contactDetails, id, language, false, parseInt(respondent) + 1, keys) + ); + newRespondentStorage.push( + respondentTelephoneEmailDetails(contactDetails, id, language, true, parseInt(respondent) + 1, keys) + ); return newRespondentStorage; }; -const respondentTelephoneEmailDetails = (contactDetails, id, language, isTelephone: boolean) => { +const respondentTelephoneEmailDetails = (contactDetails, id, language, isTelephone: boolean, index: number, keys) => { const ctx: string[] = []; if (isTelephone) { ctx.push('donKnowTelephoneNumber', 'dont_know_telephone', 'telephone_number', 'telephoneNumber'); @@ -1143,12 +1250,14 @@ const respondentTelephoneEmailDetails = (contactDetails, id, language, isTelepho if (contactDetails.hasOwnProperty(ctx[0]) && contactDetails[ctx[0]] === 'Yes') { return { key: getYesNoTranslation(language, ctx[1], 'personalDetails'), + visuallyHiddenText: `${keys['respondents']} ${index} ${getYesNoTranslation(language, ctx[1], 'personalDetails')}`, value: getYesNoTranslation(language, contactDetails?.[ctx[0]], 'doTranslation'), changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_CONTACT_DETAILS'], { respondentId: id }), }; } else { return { key: getYesNoTranslation(language, ctx[2], 'personalDetails'), + visuallyHiddenText: `${keys['respondents']} ${index} ${getYesNoTranslation(language, ctx[2], 'personalDetails')}`, value: contactDetails?.[ctx[3]], changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_CONTACT_DETAILS'], { respondentId: id }), }; @@ -1165,6 +1274,7 @@ export const RespondentDetails = ( const newRespondentStorage: { key: string; keyHtml?: string; + visuallyHiddenText?: string; value?: string; valueHtml?: string; changeUrl: string; @@ -1188,16 +1298,19 @@ export const RespondentDetails = ( }, { key: keys['fullName'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['fullName']}`, value: firstname + ' ' + lastname, changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_ADD'], {}), }, { key: keys['hasNameChanged'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['hasNameChanged']}`, valueHtml: changeNameInformation?.[0]?.toUpperCase() + changeNameInformation.slice(1), changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_PERSONAL_DETAILS'], { respondentId: id }), }, { key: keys['childGenderLabel'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['childGenderLabel']}`, valueHtml: childGender, changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_PERSONAL_DETAILS'], { respondentId: id }), } @@ -1207,11 +1320,13 @@ export const RespondentDetails = ( newRespondentStorage.push( { key: keys['approxCheckboxLabel'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['approxCheckboxLabel']}`, value: getYesNoTranslation(language, personalDetails['isDateOfBirthUnknown'], 'doTranslation'), changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_PERSONAL_DETAILS'], { respondentId: id }), }, { key: keys['approxDobLabel'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['approxDobLabel']}`, value: DATE_FORMATTOR(personalDetails['approxDateOfBirth'], language), changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_PERSONAL_DETAILS'], { respondentId: id }), } @@ -1219,6 +1334,7 @@ export const RespondentDetails = ( } else { newRespondentStorage.push({ key: keys['dobLabel'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['dobLabel']}`, value: DATE_FORMATTOR(personalDetails['dateOfBirth'], language), changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_PERSONAL_DETAILS'], { respondentId: id }), }); @@ -1227,12 +1343,16 @@ export const RespondentDetails = ( if (personalDetails['respondentPlaceOfBirthUnknown'] !== 'No') { newRespondentStorage.push({ key: keys['respondentPlaceOfBirthUnknown'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${ + keys['respondentPlaceOfBirthUnknown'] + }`, value: getYesNoTranslation(language, personalDetails?.['respondentPlaceOfBirthUnknown'], 'doTranslation'), changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_PERSONAL_DETAILS'], { respondentId: id }), }); } else { newRespondentStorage.push({ key: keys['respondentPlaceOfBirth'], + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${keys['respondentPlaceOfBirth']}`, value: personalDetails?.['respondentPlaceOfBirth'], changeUrl: applyParms(Urls['C100_RESPONDENT_DETAILS_PERSONAL_DETAILS'], { respondentId: id }), }); @@ -1243,6 +1363,9 @@ export const RespondentDetails = ( const childFullName = childDetails?.['firstName'] + ' ' + childDetails?.['lastName']; newRespondentStorage.push({ key: keys['relationshipTo'] + ' ' + childFullName, + visuallyHiddenText: `${keys['respondents']} ${parseInt(respondent) + 1} ${ + keys['relationshipTo'] + ' ' + childFullName + }`, value: translation(element['relationshipType'], language), valueHtml: element['relationshipType'] === 'Other' @@ -1262,7 +1385,8 @@ export const RespondentDetails = ( const SummaryData = newRespondentStorage; return { - title: sectionTitles['detailsOfRespondent'], + title: '', + subTitle: sectionTitles['detailsOfRespondent'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -1283,7 +1407,8 @@ export const OtherPeopleDetailsTitle = ( const SummaryData = newOtherPeopleStorage; return { - title: sectionTitles['detailofOtherPeople'], + title: '', + subTitle: sectionTitles['detailofOtherPeople'], rows: getSectionSummaryList(SummaryData, content), }; }; @@ -1299,6 +1424,7 @@ export const OtherPeopleDetails = ( key: string; anchorReference?: string; keyHtml?: string; + visuallyHiddenText?: string; value?: string; valueHtml?: string; changeUrl: string; @@ -1322,16 +1448,19 @@ export const OtherPeopleDetails = ( }, { key: keys['fullName'], + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['fullName']}`, value: firstname + ' ' + lastname, changeUrl: applyParms(Urls['C100_OTHER_PERSON_DETAILS_ADD'], { otherPersonId: id }), }, { key: keys['hasNameChanged'], + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['hasNameChanged']}`, valueHtml: changeNameInformation, changeUrl: applyParms(Urls['C100_OTHER_PERSON_DETAILS_PERSONAL_DETAILS'], { otherPersonId: id }), }, { key: keys['childGenderLabel'], + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['childGenderLabel']}`, valueHtml: childGender, changeUrl: applyParms(Urls['C100_OTHER_PERSON_DETAILS_PERSONAL_DETAILS'], { otherPersonId: id }), } @@ -1341,11 +1470,13 @@ export const OtherPeopleDetails = ( newOtherPeopleStorage.push( { key: keys['approxCheckboxLabel'], + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['approxCheckboxLabel']}`, value: getYesNoTranslation(language, personalDetails['isDateOfBirthUnknown'], 'doTranslation'), changeUrl: applyParms(Urls['C100_OTHER_PERSON_DETAILS_PERSONAL_DETAILS'], { otherPersonId: id }), }, { key: keys['approxDobLabel'], + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['approxDobLabel']}`, value: DATE_FORMATTOR(personalDetails['approxDateOfBirth'], language), changeUrl: applyParms(Urls['C100_OTHER_PERSON_DETAILS_PERSONAL_DETAILS'], { otherPersonId: id }), } @@ -1353,6 +1484,7 @@ export const OtherPeopleDetails = ( } else { newOtherPeopleStorage.push({ key: keys['dobLabel'], + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['dobLabel']}`, value: DATE_FORMATTOR(personalDetails['dateOfBirth'], language), changeUrl: applyParms(Urls['C100_OTHER_PERSON_DETAILS_PERSONAL_DETAILS'], { otherPersonId: id }), }); @@ -1365,6 +1497,9 @@ export const OtherPeopleDetails = ( const childFullName = childDetails?.['firstName'] + ' ' + childDetails?.['lastName']; newOtherPeopleStorage.push({ key: keys['relationshipTo'] + ' ' + childFullName, + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${ + keys['relationshipTo'] + ' ' + childFullName + }`, value: translation(element['relationshipType'], language), valueHtml: element['relationshipType'] === 'Other' @@ -1380,6 +1515,7 @@ export const OtherPeopleDetails = ( newOtherPeopleStorage.push({ key: keys['refuge'], value: getYesNoTranslation(language, sessionOtherPeopleData[respondent]['liveInRefuge'], 'ydwTranslation'), + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['refuge']}`, changeUrl: applyParms(Urls.STAYING_IN_REFUGE, { root: RootContext.C100_REBUILD, id: sessionOtherPeopleData[respondent]['id'], @@ -1390,6 +1526,7 @@ export const OtherPeopleDetails = ( newOtherPeopleStorage.push({ key: keys['c8RefugeDocument'], anchorReference: `c8RefugeDocument-otherPerson-${respondent}`, + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['c8RefugeDocument']}`, value: '', valueHtml: !_.isEmpty(sessionOtherPeopleData[respondent]['refugeConfidentialityC8Form']) ? sessionOtherPeopleData[respondent]['refugeConfidentialityC8Form']?.['document_filename'] @@ -1404,6 +1541,7 @@ export const OtherPeopleDetails = ( if (!sessionOtherPeopleData[respondent].hasOwnProperty('addressUnknown')) { newOtherPeopleStorage.push({ key: keys['addressDetails'], + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['addressDetails']}`, value: '', valueHtml: otherPeopleAddressParser(sessionOtherPeopleData[respondent].address), changeUrl: applyParms(Urls['C100_OTHER_PERSON_DETAILS_ADDRESS_MANUAL'], { otherPersonId: id }), @@ -1415,6 +1553,7 @@ export const OtherPeopleDetails = ( ) { newOtherPeopleStorage.push({ key: keys['explainYesLabel'], + visuallyHiddenText: `${keys['otherPerson']} ${parseInt(respondent) + 1} ${keys['explainYesLabel']}`, value: getYesNoTranslation(language, sessionOtherPeopleData[respondent]['addressUnknown'], 'doTranslation'), changeUrl: applyParms(Urls['C100_OTHER_PERSON_DETAILS_ADDRESS_MANUAL'], { otherPersonId: id }), }); @@ -1468,7 +1607,7 @@ export const whereDoChildrenLive = ( newChildDataStorage.push({ key: interpolate(keys['whoDoesChildMainlyLiveWith'], { firstname, lastname }), value: '', - valueHtml: `${mainlyLivesWith.firstName} ${mainlyLivesWith.lastName}`, + valueHtml: `${mainlyLivesWith?.firstName} ${mainlyLivesWith?.lastName}`, changeUrl: applyParms(Urls['C100_CHILDERN_MAINLY_LIVE_WITH'], { childId: id }), }); @@ -1624,19 +1763,22 @@ const DIGITAL = 'digital'; const populateDateOfBirth = ( personalDetails: object, - newChildDataStorage: SummaryListRow[], keys: Record, language: string, id: string, - isForChild: boolean + isForChild: boolean, + count: number, + partyType: string ): SummaryListRow[] => { const isDateOfBirthUnknown = isForChild ? personalDetails['isDateOfBirthUnknown'] === YesOrNo.YES : personalDetails['isDateOfBirthUnknown'] !== ''; + const dateOfBirthSections: SummaryListRow[] = []; if (isDateOfBirthUnknown) { - newChildDataStorage.push( + dateOfBirthSections.push( { key: keys['approxCheckboxLabel'], + visuallyHiddenText: `${partyType} ${count} ${keys['approxCheckboxLabel']}`, value: getYesNoTranslation(language, personalDetails['isDateOfBirthUnknown'], 'doTranslation'), changeUrl: isForChild ? applyParms(Urls['C100_CHILDERN_DETAILS_PERSONAL_DETAILS'], { childId: id }) @@ -1644,6 +1786,7 @@ const populateDateOfBirth = ( }, { key: keys['approxDobLabel'], + visuallyHiddenText: `${partyType} ${count} ${keys['approxDobLabel']}`, value: DATE_FORMATTOR(personalDetails['approxDateOfBirth'], language), changeUrl: isForChild ? applyParms(Urls['C100_CHILDERN_DETAILS_PERSONAL_DETAILS'], { childId: id }) @@ -1651,15 +1794,19 @@ const populateDateOfBirth = ( } ); } else { - newChildDataStorage.push({ + dateOfBirthSections.push({ key: keys['dobLabel'], + visuallyHiddenText: `${partyType} ${count} ${keys['dobLabel']}`, value: DATE_FORMATTOR(personalDetails['dateOfBirth'], language), changeUrl: isForChild ? applyParms(Urls['C100_CHILDERN_DETAILS_PERSONAL_DETAILS'], { childId: id }) : applyParms(Urls['C100_CHILDERN_OTHER_CHILDREN_PERSONAL_DETAILS'], { childId: id }), }); } - return newChildDataStorage; + return dateOfBirthSections; +}; +export const isBorderPresent = (data: YesOrNo | undefined, condition: string): HTML => { + return data === condition ? HTML.ROW_START : HTML.ROW_START_NO_BORDER; }; export const areRefugeDocumentsNotPresent = (caseData: Partial): boolean => { diff --git a/src/main/steps/c100-rebuild/check-your-answers/template.njk b/src/main/steps/c100-rebuild/check-your-answers/template.njk index d9715f2515..95a66a5023 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/template.njk +++ b/src/main/steps/c100-rebuild/check-your-answers/template.njk @@ -17,7 +17,8 @@ titleText: errors.paymentError.title, errorList: [ { - html: "
              "+errors.paymentError[paymentError.errorContext]+"
              " + text: errors.paymentError[paymentError.errorContext], + href:"#statementOfTruth" } ] }) }} diff --git a/src/main/steps/c100-rebuild/check-your-answers/util/applicant.util.test.ts b/src/main/steps/c100-rebuild/check-your-answers/util/applicant.util.test.ts index 55f3468404..8853b9d49e 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/util/applicant.util.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/util/applicant.util.test.ts @@ -47,7 +47,7 @@ const ApplicantTestElements = SystemLanguage => { ...contentContactEn(), ...contentPersonalDetailsEn(), anyotherPersonYouwantList: opersonDetailsEn().title, - anyOtherPeopleKnowDetails: contentDetailKnownEn().headingTitle, + anyOtherPeopleKnowDetails: contentDetailKnownEn().title, doYouWantToKeep: contentStartEn().headingTitle, haveLivedMore: addressManualEn().addressHistoryLabel, otherGender: personalDetailsEn().other, @@ -70,7 +70,7 @@ const ApplicantTestElements = SystemLanguage => { ...contentPersonalDetailsCy(), ...opersonDetailsCy(), anyotherPersonYouwantList: opersonDetailsCy().title, - anyOtherPeopleKnowDetails: contentDetailKnownCy().headingTitle, + anyOtherPeopleKnowDetails: contentDetailKnownCy().title, doYouWantToKeep: contentStartCy().headingTitle, haveLivedMore: addressManualCy().addressHistoryLabel, otherGender: personalDetailsCy().other, diff --git a/src/main/steps/c100-rebuild/check-your-answers/util/applicant.util.ts b/src/main/steps/c100-rebuild/check-your-answers/util/applicant.util.ts index 0108fb09c0..b1a2ef27f5 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/util/applicant.util.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/util/applicant.util.ts @@ -53,7 +53,7 @@ export const ApplicantElements = SystemLanguage => { ...contentContactEn(), ...contentPersonalDetailsEn(), anyotherPersonYouwantList: opersonDetailsEn().title, - anyOtherPeopleKnowDetails: contentDetailKnownEn().headingTitle, + anyOtherPeopleKnowDetails: contentDetailKnownEn().title, doYouWantToKeep: contentStartEn().headingTitle, haveLivedMore: addressManualEn().addressHistoryLabel, otherGender: personalDetailsEn().other, @@ -76,7 +76,7 @@ export const ApplicantElements = SystemLanguage => { ...contentPersonalDetailsCy(), ...opersonDetailsCy(), anyotherPersonYouwantList: opersonDetailsCy().title, - anyOtherPeopleKnowDetails: contentDetailKnownCy().headingTitle, + anyOtherPeopleKnowDetails: contentDetailKnownCy().title, doYouWantToKeep: contentStartCy().headingTitle, haveLivedMore: addressManualCy().addressHistoryLabel, otherGender: personalDetailsCy().other, diff --git a/src/main/steps/c100-rebuild/check-your-answers/util/otherProceeding.util.test.ts b/src/main/steps/c100-rebuild/check-your-answers/util/otherProceeding.util.test.ts index d0d7e059e6..1056210828 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/util/otherProceeding.util.test.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/util/otherProceeding.util.test.ts @@ -1,11 +1,9 @@ +import { ProceedingsOrderInterface } from '../../../../app/case/definition'; +import { IndividualOrderFieldsParser, otherProceedingsContents } from '../../../common/otherProceeding/utils'; import { cy, en } from '../../other-proceedings/current-previous-proceedings/content'; import { cy as opDetailsCyContents, en as opDetailsEnContents } from '../../other-proceedings/order-details/content'; -import { - IndividualOrderFieldsParser, - OPotherProceedingsSessionParserUtil, - otherProceedingsContents, -} from './otherProceeding.util'; +import { OPotherProceedingsSessionParserUtil } from './otherProceeding.util'; describe('test cases for otherProceedingsContents', () => { const language = 'en'; @@ -14,22 +12,22 @@ describe('test cases for otherProceedingsContents', () => { en: () => { delete en['errors']; delete opDetailsEnContents['errors']; - return { ...en(), ...opDetailsEnContents(), optitle: opDetailsEnContents().pageTitle }; + return { ...en(), ...opDetailsEnContents(), optitle: opDetailsEnContents().title }; }, cy: () => { delete cy['errors']; delete opDetailsCyContents['errors']; - return { ...cy(), ...opDetailsCyContents(), optitle: opDetailsCyContents().pageTitle }; + return { ...cy(), ...opDetailsCyContents(), optitle: opDetailsCyContents().title }; }, }; return SystemLanguage === 'en' ? opContents.en() : opContents.cy(); }; test('english contents', () => { - expect(otherProceedingsContents('en')).toStrictEqual(contentLoaders('en')); + expect(otherProceedingsContents('en', 'c100-rebuild')).toStrictEqual(contentLoaders('en')); }); test('Welsh contents', () => { - expect(otherProceedingsContents('cy')).toStrictEqual(contentLoaders('cy')); + expect(otherProceedingsContents('cy', 'c100-rebuild')).toStrictEqual(contentLoaders('cy')); }); test('OPotherProceedingsSessionParserUtil', () => { @@ -147,7 +145,7 @@ describe('test cases for otherProceedingsContents', () => { }); test('IndividualOrderFieldsParser', () => { - const order = {}; + const order = {} as ProceedingsOrderInterface; const keys = { courtIssuedLabel: '', caseNumberLabel: '', @@ -156,6 +154,6 @@ describe('test cases for otherProceedingsContents', () => { copyOfOrderLabel: '', orderEndDate: '', }; - expect(IndividualOrderFieldsParser(keys, order, language)).not.toBe([]); + expect(IndividualOrderFieldsParser(keys, order, language, 'c100-rebuild')).not.toBe([]); }); }); diff --git a/src/main/steps/c100-rebuild/check-your-answers/util/otherProceeding.util.ts b/src/main/steps/c100-rebuild/check-your-answers/util/otherProceeding.util.ts index 6b71d64471..aef8ae9fc0 100644 --- a/src/main/steps/c100-rebuild/check-your-answers/util/otherProceeding.util.ts +++ b/src/main/steps/c100-rebuild/check-your-answers/util/otherProceeding.util.ts @@ -1,12 +1,9 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ +import { RootContext } from '../../../../app/case/definition'; +import { IndividualOrderFieldsParser } from '../../../../steps/common/otherProceeding/utils'; import { C100_OTHER_PROCEEDINGS_ORDER_DETAILS } from '../../../../steps/urls'; -import { DATE_FORMATTOR } from '../../../common/dateformatter'; import { applyParms } from '../../../common/url-parser'; -import { cy, en } from '../../other-proceedings/current-previous-proceedings/content'; -import { cy as opDetailsCyContents, en as opDetailsEnContents } from '../../other-proceedings/order-details/content'; -import { HTML } from '../common/htmlSelectors'; -import { getYesNoTranslation } from '../mainUtil'; /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ export const Mapper = (key, keys) => { @@ -27,34 +24,6 @@ export const Mapper = (key, keys) => { return keys['copy']; } }; -export const IndividualOrderFieldsParser = (keys, order, language) => { - const newOrders = order; - let Val = ''; - Object.entries(newOrders).forEach((entry, index) => { - const key = entry[0]; - const value = entry[1]; - const rulerForLastElement = Object.entries(newOrders).length > index + 1 ? HTML.RULER : '
              '; - if (key !== 'id' && key !== 'orderDocument') { - if (typeof entry[1] === 'object' && entry[1] !== null) { - const keyDetails = HTML.H4 + Mapper(key, keys) + HTML.H4_CLOSE; - const valueDetails = HTML.P + DATE_FORMATTOR(value, language) + HTML.P_CLOSE; - Val += keyDetails + valueDetails + rulerForLastElement; - } else { - const keyDetails = HTML.H4 + Mapper(key, keys) + HTML.H4_CLOSE; - let valueDetails = ''; - if (key === 'currentOrder') { - valueDetails = HTML.P + getYesNoTranslation(language, value, 'ieTranslation') + HTML.P_CLOSE; - } else if (key === 'orderCopy') { - valueDetails = HTML.P + getYesNoTranslation(language, value, 'oesTranslation') + HTML.P_CLOSE; - } else { - valueDetails = HTML.P + value + HTML.P_CLOSE; - } - Val += keyDetails + valueDetails + rulerForLastElement; - } - } - }); - return Val; -}; /** * It takes in a UserCase object, a keys object, a URLS object and a sessionKey string. It returns an @@ -94,7 +63,7 @@ export const OPotherProceedingsSessionParserUtil = (UserCase, keys, sessionKey, const IndexNumber = index > 0 ? index + 1 : ''; orderSessionStorage.push({ key: `${keys[order + 'Label']} ${IndexNumber}`, - valueHtml: IndividualOrderFieldsParser(keys, nestedOrder, language), + valueHtml: IndividualOrderFieldsParser(keys, nestedOrder, language, RootContext.C100_REBUILD), changeUrl: applyParms(C100_OTHER_PROCEEDINGS_ORDER_DETAILS, { orderType: order }), }); }); @@ -104,24 +73,3 @@ export const OPotherProceedingsSessionParserUtil = (UserCase, keys, sessionKey, } return [{}]; }; - -/** - * It returns an object containing the contents of the English and Welsh versions of the page, - * depending on the language selected - * @returns A function that returns an object. - */ -export const otherProceedingsContents = SystemLanguage => { - const opContents = { - en: () => { - delete en['errors']; - delete opDetailsEnContents['errors']; - return { ...en(), ...opDetailsEnContents(), optitle: opDetailsEnContents().pageTitle }; - }, - cy: () => { - delete cy['errors']; - delete opDetailsCyContents['errors']; - return { ...cy(), ...opDetailsCyContents(), optitle: opDetailsCyContents().pageTitle }; - }, - }; - return SystemLanguage === 'en' ? opContents.en() : opContents.cy(); -}; diff --git a/src/main/steps/c100-rebuild/child-details/add-children/content.test.ts b/src/main/steps/c100-rebuild/child-details/add-children/content.test.ts index 01de80acfc..02cb029097 100644 --- a/src/main/steps/c100-rebuild/child-details/add-children/content.test.ts +++ b/src/main/steps/c100-rebuild/child-details/add-children/content.test.ts @@ -104,7 +104,7 @@ describe('Add children > content', () => { }); // eslint-disable-next-line jest/expect-expect test('should return correct english content', () => { - const { errors } = generateFormFields([getDataShape(PartyType.CHILDREN) as ChildrenDetails]); + const { errors } = generateFormFields([getDataShape(PartyType.CHILDREN) as ChildrenDetails], ''); languageAssertions( 'en', { @@ -120,7 +120,7 @@ describe('Add children > content', () => { // eslint-disable-next-line jest/expect-expect test('should return correct welsh content', () => { - const { errors } = generateFormFields([getDataShape(PartyType.CHILDREN) as ChildrenDetails]); + const { errors } = generateFormFields([getDataShape(PartyType.CHILDREN) as ChildrenDetails], ''); languageAssertions( 'cy', { diff --git a/src/main/steps/c100-rebuild/child-details/add-children/content.ts b/src/main/steps/c100-rebuild/child-details/add-children/content.ts index 88abe3542e..b1757592ac 100644 --- a/src/main/steps/c100-rebuild/child-details/add-children/content.ts +++ b/src/main/steps/c100-rebuild/child-details/add-children/content.ts @@ -1,7 +1,9 @@ +import _ from 'lodash'; + import { CaseWithId } from '../../../../app/case/case'; import { ChildrenDetails } from '../../../../app/case/definition'; import { TranslationFn } from '../../../../app/controller/GetController'; -import { FormContent, GenerateDynamicFormFields } from '../../../../app/form/Form'; +import { FormContent, FormInput, GenerateDynamicFormFields } from '../../../../app/form/Form'; import { isFieldFilledIn, isFieldLetters } from '../../../../app/form/validation'; let updatedForm: FormContent; @@ -68,39 +70,45 @@ const updateFormFields = (form: FormContent, formFields: FormContent['fields']): return updatedForm; }; -export const generateFormFields = (children: ChildrenDetails[]): GenerateDynamicFormFields => { +export const generateFormFields = ( + children: ChildrenDetails[], + context: string | undefined +): GenerateDynamicFormFields => { const fields = {}; const errors = { en: {}, cy: {}, }; + const nameFieldConfig: FormInput = { + type: 'text', + labelSize: 'm', + classes: 'govuk-!-width-one-half', + validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, + }; for (let index = 0; index < children.length; index++) { const count = index + 1; const key = `fieldset${count}`; const { id, firstName = '', lastName = '' } = children[index]; + const inputFieldConfig = { ...nameFieldConfig }; + + if ((context === 'add' && count === children.length) || (context === 'remove' && count === 1)) { + inputFieldConfig.attributes = { + ...inputFieldConfig.attributes, + autofocus: true, + }; + } fields[key] = { type: 'fieldset', label: l => `${l.Child} ${count}`, classes: 'govuk-fieldset__legend--m', subFields: { - [`firstName-${count}`]: { - type: 'text', - value: firstName, - labelSize: 'm', - classes: 'govuk-!-width-one-half', - label: l => l.firstNameLabel, - validator: value => isFieldFilledIn(value) || isFieldLetters(value), - }, - [`lastName-${count}`]: { - type: 'text', - label: l => l.lastNameLabel, - value: lastName, - classes: 'govuk-!-width-one-half', - labelSize: 'm', - validator: value => isFieldFilledIn(value) || isFieldLetters(value), - }, + [`firstName-${count}`]: { ...inputFieldConfig, label: l => l.firstNameLabel, value: firstName }, + [`lastName-${count}`]: { ...inputFieldConfig, label: l => l.lastNameLabel, value: lastName }, remove: { type: 'button', label: l => `${l.removeChildLabel} ${count}`, @@ -116,7 +124,6 @@ export const generateFormFields = (children: ChildrenDetails[]): GenerateDynamic errors.cy[`firstName-${count}`] = cy().errors.c100TempFirstName; errors.cy[`lastName-${count}`] = cy().errors.c100TempLastName; } - return { fields, errors }; }; @@ -144,6 +151,9 @@ export const form: FormContent = { label: l => l.lastNameLabel, labelSize: 'none', validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, }, add: { type: 'button', @@ -167,15 +177,18 @@ export const form: FormContent = { }, }; -export const getFormFields = (caseData: Partial): FormContent => { - return updateFormFields(form, generateFormFields(caseData?.cd_children ?? []).fields); +export const getFormFields = (caseData: Partial, context: string): FormContent => { + return updateFormFields(form, generateFormFields(caseData?.cd_children ?? [], context).fields); }; export const generateContent: TranslationFn = content => { const translations = languages[content.language](); const sessionData = content?.userCase?.cd_children; - const { fields, errors } = generateFormFields(sessionData ?? []); + const { fields, errors } = generateFormFields( + sessionData ?? [], + _.get(content, 'additionalData.req.session.applicationSettings.dynamicForm.context') + ); translations.errors = { ...translations.errors, diff --git a/src/main/steps/c100-rebuild/child-details/other-children/names/content.test.ts b/src/main/steps/c100-rebuild/child-details/other-children/names/content.test.ts index f003144938..470ce3a5bf 100644 --- a/src/main/steps/c100-rebuild/child-details/other-children/names/content.test.ts +++ b/src/main/steps/c100-rebuild/child-details/other-children/names/content.test.ts @@ -102,7 +102,7 @@ describe('Add children > content', () => { }); // eslint-disable-next-line jest/expect-expect test('should return correct english content', () => { - const { errors } = generateFormFields([getDataShape(PartyType.OTHER_CHILDREN) as C100RebuildPartyDetails]); + const { errors } = generateFormFields([getDataShape(PartyType.OTHER_CHILDREN) as C100RebuildPartyDetails], ''); languageAssertions( 'en', { @@ -118,7 +118,7 @@ describe('Add children > content', () => { // eslint-disable-next-line jest/expect-expect test('should return correct welsh content', () => { - const { errors } = generateFormFields([getDataShape(PartyType.OTHER_CHILDREN) as C100RebuildPartyDetails]); + const { errors } = generateFormFields([getDataShape(PartyType.OTHER_CHILDREN) as C100RebuildPartyDetails], ''); languageAssertions( 'cy', { diff --git a/src/main/steps/c100-rebuild/child-details/other-children/names/content.ts b/src/main/steps/c100-rebuild/child-details/other-children/names/content.ts index 9ff48ce6e7..dee2e79ae5 100644 --- a/src/main/steps/c100-rebuild/child-details/other-children/names/content.ts +++ b/src/main/steps/c100-rebuild/child-details/other-children/names/content.ts @@ -1,7 +1,9 @@ +import _ from 'lodash'; + import { CaseWithId } from '../../../../../app/case/case'; import { OtherChildrenDetails } from '../../../../../app/case/definition'; import { TranslationFn } from '../../../../../app/controller/GetController'; -import { FormContent, GenerateDynamicFormFields } from '../../../../../app/form/Form'; +import { FormContent, FormInput, GenerateDynamicFormFields } from '../../../../../app/form/Form'; import { isFieldFilledIn, isFieldLetters } from '../../../../../app/form/validation'; let updatedForm: FormContent; @@ -66,39 +68,45 @@ const updateFormFields = (form: FormContent, formFields: FormContent['fields']): return updatedForm; }; -export const generateFormFields = (children: OtherChildrenDetails[]): GenerateDynamicFormFields => { +export const generateFormFields = ( + children: OtherChildrenDetails[], + context: string | undefined +): GenerateDynamicFormFields => { const fields = {}; const errors = { en: {}, cy: {}, }; + const nameFieldConfig: FormInput = { + type: 'text', + labelSize: 'm', + classes: 'govuk-!-width-one-half', + validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, + }; for (let index = 0; index < children.length; index++) { const count = index + 1; const key = `fieldset${count}`; const { id, firstName = '', lastName = '' } = children[index]; + const inputFieldConfig = { ...nameFieldConfig }; + + if ((context === 'add' && count === children.length) || (context === 'remove' && count === 1)) { + inputFieldConfig.attributes = { + ...inputFieldConfig.attributes, + autofocus: true, + }; + } fields[key] = { type: 'fieldset', label: l => `${l.Child} ${count}`, classes: 'govuk-fieldset__legend--m', subFields: { - [`firstName-${count}`]: { - type: 'text', - value: firstName, - labelSize: 'm', - classes: 'govuk-!-width-one-half', - label: l => l.firstNameLabel, - validator: value => isFieldFilledIn(value) || isFieldLetters(value), - }, - [`lastName-${count}`]: { - type: 'text', - label: l => l.lastNameLabel, - value: lastName, - classes: 'govuk-!-width-one-half', - labelSize: 'm', - validator: value => isFieldFilledIn(value) || isFieldLetters(value), - }, + [`firstName-${count}`]: { ...inputFieldConfig, label: l => l.firstNameLabel, value: firstName }, + [`lastName-${count}`]: { ...inputFieldConfig, label: l => l.lastNameLabel, value: lastName }, remove: { type: 'button', label: l => `${l.removeChildLabel} ${count}`, @@ -132,6 +140,9 @@ export const form: FormContent = { hint: hint => hint.firstNameHint, labelSize: 'none', validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, }, c100TempLastName: { type: 'text', @@ -139,6 +150,9 @@ export const form: FormContent = { label: l => l.lastNameLabel, labelSize: 'none', validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, }, add: { type: 'button', @@ -162,15 +176,18 @@ export const form: FormContent = { }, }; -export const getFormFields = (caseData: Partial): FormContent => { - return updateFormFields(form, generateFormFields(caseData?.ocd_otherChildren ?? []).fields); +export const getFormFields = (caseData: Partial, context: string): FormContent => { + return updateFormFields(form, generateFormFields(caseData?.ocd_otherChildren ?? [], context).fields); }; export const generateContent: TranslationFn = content => { const translations = languages[content.language](); const sessionData = content?.userCase?.ocd_otherChildren; - const { fields, errors } = generateFormFields(sessionData ?? []); + const { fields, errors } = generateFormFields( + sessionData ?? [], + _.get(content, 'additionalData.req.session.applicationSettings.dynamicForm.context') + ); translations.errors = { ...translations.errors, diff --git a/src/main/steps/c100-rebuild/child-details/parental-responsibility/template.njk b/src/main/steps/c100-rebuild/child-details/parental-responsibility/template.njk index 477a58bb36..310b7ba796 100644 --- a/src/main/steps/c100-rebuild/child-details/parental-responsibility/template.njk +++ b/src/main/steps/c100-rebuild/child-details/parental-responsibility/template.njk @@ -1,6 +1,6 @@ {% extends "common/template.njk" %} {% block page_content %}

              {{title}}

              -

              +

              {{bodyHint | safe}}
              {% endblock %} \ No newline at end of file diff --git a/src/main/steps/c100-rebuild/confirmation-page/template.njk b/src/main/steps/c100-rebuild/confirmation-page/template.njk index d78f5a3974..6b2cc91c58 100644 --- a/src/main/steps/c100-rebuild/confirmation-page/template.njk +++ b/src/main/steps/c100-rebuild/confirmation-page/template.njk @@ -37,7 +37,7 @@ {% endfor %}

            -

            {{triTitle}}

            +

            {{triTitle}}

              {% for item in secondList %}
            • {{item | safe}}
            • @@ -48,7 +48,6 @@
              - {{secondaryBtnLabel}} diff --git a/src/main/steps/c100-rebuild/consent-order/upload-confirmation/template.njk b/src/main/steps/c100-rebuild/consent-order/upload-confirmation/template.njk index 1cab912f44..68d893ab7e 100644 --- a/src/main/steps/c100-rebuild/consent-order/upload-confirmation/template.njk +++ b/src/main/steps/c100-rebuild/consent-order/upload-confirmation/template.njk @@ -6,7 +6,7 @@

              {{title}}

              {% set html %} -

              {{confirmationText}}

              +

              {{confirmationText}}

              {% endset %} {{ govukNotificationBanner({ diff --git a/src/main/steps/c100-rebuild/consent-order/upload/content.test.ts b/src/main/steps/c100-rebuild/consent-order/upload/content.test.ts index 15d57ad669..a9af1a66b3 100644 --- a/src/main/steps/c100-rebuild/consent-order/upload/content.test.ts +++ b/src/main/steps/c100-rebuild/consent-order/upload/content.test.ts @@ -1,5 +1,5 @@ import languageAssertions from '../../../../../test/unit/utils/languageAssertions'; -import { FormContent, FormFields, FormOptions, LanguageLookup } from '../../../../app/form/Form'; +import { FormContent, LanguageLookup } from '../../../../app/form/Form'; //import { isFieldFilledIn } from '../../../../app/form/validation'; import { CommonContent, generatePageContent } from '../../../common/common.content'; @@ -80,14 +80,6 @@ describe('Consent-Order Upload-should return english content', () => { languageAssertions('cy', cy, () => generateContent({ ...commonContent, language: 'cy' })); }); - test('should contain Consent-Order document upload field', () => { - const generatedContent = generateContent(commonContent) as Record; - const form = generatedContent.form as FormContent; - const fields = form.fields as FormFields; - const coUploadField = fields.co_upload as FormOptions; - expect(coUploadField.type).toBe('hidden'); - }); - test('should contain Continue button', () => { const generatedContent = generateContent(commonContent); const form = generatedContent.form as FormContent | undefined; diff --git a/src/main/steps/c100-rebuild/consent-order/upload/content.ts b/src/main/steps/c100-rebuild/consent-order/upload/content.ts index c56ef7252b..765d066f10 100644 --- a/src/main/steps/c100-rebuild/consent-order/upload/content.ts +++ b/src/main/steps/c100-rebuild/consent-order/upload/content.ts @@ -71,13 +71,7 @@ const languages = { }; export const form: FormContent = { - fields: { - co_upload: { - type: 'hidden', - labelHidden: true, - value: 'true', - }, - }, + fields: {}, submit: { text: l => l.onlycontinue, }, diff --git a/src/main/steps/c100-rebuild/consent-order/upload/template.njk b/src/main/steps/c100-rebuild/consent-order/upload/template.njk index 51a077ad80..1ac17abf7d 100644 --- a/src/main/steps/c100-rebuild/consent-order/upload/template.njk +++ b/src/main/steps/c100-rebuild/consent-order/upload/template.njk @@ -46,7 +46,6 @@ { uploadButtonText: uploadButton, fileuploadTitle: titleForFile , - fileuploadTitleClass: "govuk-!-font-weight-bold", formPostURL: postURL , sessionFilesArray: false, sessionFiles: userCase.co_certificate, diff --git a/src/main/steps/c100-rebuild/document-submission/content.test.ts b/src/main/steps/c100-rebuild/document-submission/content.test.ts deleted file mode 100644 index 79d36e1b47..0000000000 --- a/src/main/steps/c100-rebuild/document-submission/content.test.ts +++ /dev/null @@ -1,90 +0,0 @@ -import languageAssertions from '../../../../test/unit/utils/languageAssertions'; -import { FormContent, FormFields, FormOptions, LanguageLookup } from '../../../app/form/Form'; -import { isEmailValid } from '../../../app/form/validation'; -import { CommonContent, generatePageContent } from '../../common/common.content'; - -import { generateContent } from './content'; - -jest.mock('../../../app/form/validation'); - -const en = { - headingTitle: 'How would you like to submit your application to court?', - paragraph1: - 'Your completed application can be sent straight to the court electronically, or you can print it and send it by post if you prefer.', - submitElectronically: 'Submit electronically', - sendByPost: 'Print and send by post', - emailTitle: 'Enter an email address if you would like to get a confirmation', - errors: { - documentSubmission: { - required: 'Select yes if you want to submit your application to the court electronically', - }, - emailAddress: { - invalid: 'Provide a valid email address', - }, - }, -}; - -const cy = { - headingTitle: 'Sut hoffech chi gyflwyno eich cais i’r llys?', - paragraph1: - 'Gallwch anfon y cais yn syth i’r llys yn electronig, neu gallwch ei argraffu a’i anfon drwy’r post os yw’n well gennych wneud hynny.', - submitElectronically: 'Cyflwyno’n electronig', - sendByPost: 'Argraffu ac anfon drwy’r post', - emailTitle: "Nodwch gyfeiriad e-bost os hoffech i'r llys anfon cadarnhad atoch", - errors: { - documentSubmission: { - required: "Dewiswch 'ydw' os ydych am gyflwyno eich cais i’r llys yn electronig", - }, - emailAddress: { - invalid: 'Darparwch gyfeiriad e-bost dilys', - }, - }, -}; -/* eslint-disable @typescript-eslint/ban-types */ -describe('document submission > content', () => { - const commonContent = { language: 'en' } as CommonContent; - let generatedContent; - let form; - let fields; - beforeEach(() => { - generatedContent = generateContent(commonContent); - form = generatedContent.form as FormContent; - fields = form.fields as FormFields; - }); - // eslint-disable-next-line jest/expect-expect - - test('should return correct english content', () => { - languageAssertions('en', en, () => generateContent(commonContent)); - }); - - // eslint-disable-next-line jest/expect-expect - test('should return correct welsh content', () => { - languageAssertions('cy', cy, () => generateContent({ ...commonContent, language: 'cy' })); - }); - - test('should contain document submission field', () => { - const documentSubmissionField = fields.documentSubmission as FormOptions; - - expect(documentSubmissionField.type).toBe('radios'); - expect(documentSubmissionField.classes).toBe('govuk-radios'); - expect((documentSubmissionField.values[0].label as LanguageLookup)(generatedContent)).toBe(en.submitElectronically); - expect((documentSubmissionField.values[1].label as LanguageLookup)(generatedContent)).toBe(en.sendByPost); - - const emailAddressField = documentSubmissionField.values[0].subFields?.emailAddress as FormOptions; - expect(emailAddressField.classes).toBe('govuk-!-width-one-half'); - expect((emailAddressField.label as LanguageLookup)(generatedContent)).toBe(en.emailTitle); - (emailAddressField.validator as Function)('test@hmcts.com'); - expect(isEmailValid).toHaveBeenCalledWith('test@hmcts.com'); - }); - test('should contain Continue button', () => { - expect( - (form?.submit?.text as LanguageLookup)(generatePageContent({ language: 'en' }) as Record) - ).toBe('Continue'); - }); - - test('should contain SaveAndComeLater button', () => { - expect( - (form.saveAndComeLater.text as LanguageLookup)(generatePageContent({ language: 'en' }) as Record) - ).toBe('Save and come back later'); - }); -}); diff --git a/src/main/steps/c100-rebuild/document-submission/content.ts b/src/main/steps/c100-rebuild/document-submission/content.ts deleted file mode 100644 index 8930f5e107..0000000000 --- a/src/main/steps/c100-rebuild/document-submission/content.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { TranslationFn } from '../../../app/controller/GetController'; -import { FormContent } from '../../../app/form/Form'; -import { isEmailValid, isFieldFilledIn } from '../../../app/form/validation'; - -//eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -const en = () => ({ - headingTitle: 'How would you like to submit your application to court?', - paragraph1: - 'Your completed application can be sent straight to the court electronically, or you can print it and send it by post if you prefer.', - submitElectronically: 'Submit electronically', - sendByPost: 'Print and send by post', - emailTitle: 'Enter an email address if you would like to get a confirmation', - errors: { - documentSubmission: { - required: 'Select yes if you want to submit your application to the court electronically', - }, - emailAddress: { - invalid: 'Provide a valid email address', - }, - }, -}); - -const cy = () => ({ - headingTitle: 'Sut hoffech chi gyflwyno eich cais i’r llys?', - paragraph1: - 'Gallwch anfon y cais yn syth i’r llys yn electronig, neu gallwch ei argraffu a’i anfon drwy’r post os yw’n well gennych wneud hynny.', - submitElectronically: 'Cyflwyno’n electronig', - sendByPost: 'Argraffu ac anfon drwy’r post', - emailTitle: "Nodwch gyfeiriad e-bost os hoffech i'r llys anfon cadarnhad atoch", - errors: { - documentSubmission: { - required: "Dewiswch 'ydw' os ydych am gyflwyno eich cais i’r llys yn electronig", - }, - emailAddress: { - invalid: 'Darparwch gyfeiriad e-bost dilys', - }, - }, -}); - -const languages = { - en, - cy, -}; - -export const form: FormContent = { - fields: { - documentSubmission: { - id: 'documentSubmission', - type: 'radios', - classes: 'govuk-radios', - values: [ - { - label: l => l.submitElectronically, - value: 'submitElectronically', - subFields: { - emailAddress: { - classes: 'govuk-!-width-one-half', - type: 'text', - label: l => l.emailTitle, - labelSize: null, - //eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - validator: (value): void | string => { - return isFieldFilledIn(value) !== 'required' ? isEmailValid(value) : ''; - }, - }, - }, - }, - { - label: l => l.sendByPost, - value: 'sendByPost', - }, - ], - validator: isFieldFilledIn, - }, - }, - submit: { - text: l => l.onlycontinue, - }, - saveAndComeLater: { - text: l => l.saveAndComeLater, - }, -}; - -export const generateContent: TranslationFn = content => { - const translations = languages[content.language](); - return { - ...translations, - form, - }; -}; diff --git a/src/main/steps/c100-rebuild/document-submission/template.njk b/src/main/steps/c100-rebuild/document-submission/template.njk deleted file mode 100644 index fee6272dfb..0000000000 --- a/src/main/steps/c100-rebuild/document-submission/template.njk +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "common/template.njk" %} - - -{% block page_content %} -{{caption}} -

              {{headingTitle}}

              -

              {{paragraph1}}

              -{% endblock %} diff --git a/src/main/steps/c100-rebuild/hearing-urgency/urgent-details/template.njk b/src/main/steps/c100-rebuild/hearing-urgency/urgent-details/template.njk index 3c7b8f4dda..3fa7818d1c 100644 --- a/src/main/steps/c100-rebuild/hearing-urgency/urgent-details/template.njk +++ b/src/main/steps/c100-rebuild/hearing-urgency/urgent-details/template.njk @@ -3,5 +3,5 @@ {% block page_content %}

              {{title}}

              -

              {{ reasonForUrgentHearing }}

              +

              {{ reasonForUrgentHearing }}

              {% endblock %} \ No newline at end of file diff --git a/src/main/steps/c100-rebuild/help-with-fees/fees-applied/content.test.ts b/src/main/steps/c100-rebuild/help-with-fees/fees-applied/content.test.ts index 4eef85b14e..b837c7bb77 100644 --- a/src/main/steps/c100-rebuild/help-with-fees/fees-applied/content.test.ts +++ b/src/main/steps/c100-rebuild/help-with-fees/fees-applied/content.test.ts @@ -10,8 +10,8 @@ jest.mock('../../../../app/form/validation'); const en = { feesAppliedDetailsTitle: 'Have you already applied for help with your application fee?', hwfReferenceNumberLabel: 'Enter your help with fees reference number', - hwfReferenceNumberHint: `You received this number when you applied for help with fees.
              - For example, HWF-A1B-23C`, + hwfReferenceNumberBody: 'You received this number when you applied for help with fees.', + hwfReferenceNumberHint: 'For example, HWF-A1B-23C', one: 'Yes', two: 'No', errors: { @@ -27,8 +27,8 @@ const en = { const cy = { feesAppliedDetailsTitle: 'A ydych chi eisoes wedi gwneud cais am help i dalu ffi’r cais?', hwfReferenceNumberLabel: 'Rhowch eich cyfeirnod help i dalu ffioedd', - hwfReferenceNumberHint: `Cawsoch y rhif hwn pan wnaethoch gais am help i dalu ffioedd.
              - Er enghraifft, HWF-A1B-23C`, + hwfReferenceNumberBody: 'Cawsoch y rhif hwn pan wnaethoch gais am help i dalu ffioedd.', + hwfReferenceNumberHint: 'Er enghraifft, HWF-A1B-23C', one: 'Do', two: 'Naddo', errors: { @@ -71,7 +71,6 @@ describe('help with fess > fees applied', () => { expect((applyingWithField.values[1].label as LanguageLookup)(generatedContent)).toBe(en.two); const applyTextField = applyingWithField.values[0].subFields!.helpWithFeesReferenceNumber; expect(applyTextField.type).toBe('text'); - expect((applyTextField.label as LanguageLookup)(generatedContent)).toBe(en.hwfReferenceNumberLabel); expect((applyTextField.hint as LanguageLookup)(generatedContent)).toBe(en.hwfReferenceNumberHint); (applyTextField.validator as Function)('test text'); expect(isFieldFilledIn).toHaveBeenCalledWith('test text'); diff --git a/src/main/steps/c100-rebuild/help-with-fees/fees-applied/content.ts b/src/main/steps/c100-rebuild/help-with-fees/fees-applied/content.ts index e56feb0bf2..27a84bc4be 100644 --- a/src/main/steps/c100-rebuild/help-with-fees/fees-applied/content.ts +++ b/src/main/steps/c100-rebuild/help-with-fees/fees-applied/content.ts @@ -7,8 +7,8 @@ import { isFieldFilledIn, isTextAreaValid } from '../../../../app/form/validatio const en = () => ({ feesAppliedDetailsTitle: 'Have you already applied for help with your application fee?', hwfReferenceNumberLabel: 'Enter your help with fees reference number', - hwfReferenceNumberHint: `You received this number when you applied for help with fees.
              - For example, HWF-A1B-23C`, + hwfReferenceNumberBody: 'You received this number when you applied for help with fees.', + hwfReferenceNumberHint: 'For example, HWF-A1B-23C', one: 'Yes', two: 'No', errors: { @@ -24,8 +24,8 @@ const en = () => ({ const cy = () => ({ feesAppliedDetailsTitle: 'A ydych chi eisoes wedi gwneud cais am help i dalu ffi’r cais?', hwfReferenceNumberLabel: 'Rhowch eich cyfeirnod help i dalu ffioedd', - hwfReferenceNumberHint: `Cawsoch y rhif hwn pan wnaethoch gais am help i dalu ffioedd.
              - Er enghraifft, HWF-A1B-23C`, + hwfReferenceNumberBody: 'Cawsoch y rhif hwn pan wnaethoch gais am help i dalu ffioedd.', + hwfReferenceNumberHint: 'Er enghraifft, HWF-A1B-23C', one: 'Do', two: 'Naddo', errors: { @@ -53,10 +53,13 @@ export const form: FormContent = { label: l => l.one, value: YesOrNo.YES, subFields: { + helpWithFeesReferenceLabel: { + type: 'textAndHtml', + textAndHtml: l => + `

              ${l.hwfReferenceNumberLabel}

              ${l.hwfReferenceNumberBody}`, + }, helpWithFeesReferenceNumber: { type: 'text', - label: l => l.hwfReferenceNumberLabel, - labelSize: 'm', hint: l => l.hwfReferenceNumberHint, classes: 'govuk-input--width-10', validator: value => isFieldFilledIn(value) || isTextAreaValid(value), diff --git a/src/main/steps/c100-rebuild/miam/domestic-abuse/providing-evidence/template.njk b/src/main/steps/c100-rebuild/miam/domestic-abuse/providing-evidence/template.njk index 0bf93e4da8..e9f5019175 100644 --- a/src/main/steps/c100-rebuild/miam/domestic-abuse/providing-evidence/template.njk +++ b/src/main/steps/c100-rebuild/miam/domestic-abuse/providing-evidence/template.njk @@ -11,16 +11,18 @@
                {% for abuseReason in listOfAbuseReasons %} -
              • {{ abuseReason.abuseEvidenceType }} - {% if abuseReason.abuseEvidenceReasons %} -
                  - {% for evidence in abuseReason.abuseEvidenceReasons %} -
                • {{ evidence }}
                • - {% endfor %} -
                +
              • {{ abuseReason.abuseEvidenceType }}
              • + {% if abuseReason.abuseEvidenceReasons and abuseReason.abuseEvidenceReasons.length %} +
              • +
                  + {% for evidence in abuseReason.abuseEvidenceReasons %} +
                • {{ evidence }}
                • + {% endfor %} +
                +
              • {% endif %} {% endfor %}
              -
              +
              {% endblock %} \ No newline at end of file diff --git a/src/main/steps/c100-rebuild/miam/get-mediator/template.njk b/src/main/steps/c100-rebuild/miam/get-mediator/template.njk index 45784a0568..d1f935a9a9 100644 --- a/src/main/steps/c100-rebuild/miam/get-mediator/template.njk +++ b/src/main/steps/c100-rebuild/miam/get-mediator/template.njk @@ -4,7 +4,7 @@ {% block page_content %}

              {{title}}

              {{paragraph}}

              -

              {{whatNextLabel}}

              +

              {{whatNextLabel}}

              {{stepsLabel}}

                diff --git a/src/main/steps/c100-rebuild/miam/miam-excemptions-summary/template.njk b/src/main/steps/c100-rebuild/miam/miam-excemptions-summary/template.njk index c54188a2fa..645529a20b 100644 --- a/src/main/steps/c100-rebuild/miam/miam-excemptions-summary/template.njk +++ b/src/main/steps/c100-rebuild/miam/miam-excemptions-summary/template.njk @@ -4,36 +4,37 @@ {% block page_content %}

                {{caption}} - {{title}}

                + {{title}} -

                {{content1}} -

                -

                {{content2}} -

                -

                {{content3}} -

                +

                {{content1}} +

                +

                {{content2}} +

                +

                {{content3}} +

                {% for exemption in exemptionSummary %} - {% if exemption.title %} -

                {{ exemption.title }}

                -
                  - {% for abuseReasons in exemption.reasons %} - {% if abuseReasons.reason %} -
                • {{ abuseReasons.reason }}
                • - {% if abuseReasons.examption %} -
                    - {% for evidence in abuseReasons.examption %} -
                  • {{ evidence }}
                  • + {% if exemption.title %} +

                    {{ exemption.title }}

                    +
                      + {% for abuseReasons in exemption.reasons %} + {% if abuseReasons.reason %} +
                    • {{ abuseReasons.reason }}
                    • + {% endif %} + {% if abuseReasons.examption and abuseReasons.examption.length %} +
                    • +
                        + {% for evidence in abuseReasons.examption %} +
                      • {{ evidence }}
                      • + {% endfor %} +
                      +
                    • + {% endif %} {% endfor %} -
                    - {% endif %} - {% endif %} - {% endfor %} -
                  - {% endif %} - {% endfor %} - +
                + {% endif %} + {% endfor %}
                - {% endblock %} +{% endblock %} \ No newline at end of file diff --git a/src/main/steps/c100-rebuild/miam/upload-confirmation/template.njk b/src/main/steps/c100-rebuild/miam/upload-confirmation/template.njk index cb669600a7..c2bd05fa18 100644 --- a/src/main/steps/c100-rebuild/miam/upload-confirmation/template.njk +++ b/src/main/steps/c100-rebuild/miam/upload-confirmation/template.njk @@ -9,7 +9,7 @@

                {{title}}

                {% set html %} -

                {{confirmationText}}

                +

                {{confirmationText}}

                {% endset %} {{ govukNotificationBanner({ diff --git a/src/main/steps/c100-rebuild/miam/upload/content.test.ts b/src/main/steps/c100-rebuild/miam/upload/content.test.ts index 8de72bad88..110e1f31f9 100644 --- a/src/main/steps/c100-rebuild/miam/upload/content.test.ts +++ b/src/main/steps/c100-rebuild/miam/upload/content.test.ts @@ -1,5 +1,5 @@ import languageAssertions from '../../../../../test/unit/utils/languageAssertions'; -import { FormContent, FormFields, FormOptions, LanguageLookup } from '../../../../app/form/Form'; +import { FormContent, LanguageLookup } from '../../../../app/form/Form'; //import { isFieldFilledIn } from '../../../../app/form/validation'; import { CommonContent, generatePageContent } from '../../../common/common.content'; @@ -74,14 +74,6 @@ describe('Miam Upload-should return english content', () => { languageAssertions('cy', cy, () => generateContent({ ...commonContent, language: 'cy' })); }); - test('should contain miam document upload field', () => { - const generatedContent = generateContent(commonContent) as Record; - const form = generatedContent.form as FormContent; - const fields = form.fields as FormFields; - const miamUploadField = fields.miamUpload as FormOptions; - expect(miamUploadField.type).toBe('hidden'); - }); - test('should contain Continue button', () => { const generatedContent = generateContent(commonContent); const form = generatedContent.form as FormContent | undefined; diff --git a/src/main/steps/c100-rebuild/miam/upload/content.ts b/src/main/steps/c100-rebuild/miam/upload/content.ts index e544d7d2fc..f479513f19 100644 --- a/src/main/steps/c100-rebuild/miam/upload/content.ts +++ b/src/main/steps/c100-rebuild/miam/upload/content.ts @@ -63,13 +63,7 @@ const languages = { }; export const form: FormContent = { - fields: { - miamUpload: { - type: 'hidden', - labelHidden: true, - value: 'true', - }, - }, + fields: {}, submit: { text: l => l.onlycontinue, }, diff --git a/src/main/steps/c100-rebuild/miam/upload/template.njk b/src/main/steps/c100-rebuild/miam/upload/template.njk index 984e3b3f10..05882c565d 100644 --- a/src/main/steps/c100-rebuild/miam/upload/template.njk +++ b/src/main/steps/c100-rebuild/miam/upload/template.njk @@ -50,7 +50,6 @@ { uploadButtonText: uploadButton, fileuploadTitle: titleForFile, - fileuploadTitleClass: "govuk-!-font-weight-bold", formPostURL: postURL , sessionFilesArray: false, sessionFiles: userCase.miam_certificate, diff --git a/src/main/steps/c100-rebuild/other-person-details/add-other-persons/content.test.ts b/src/main/steps/c100-rebuild/other-person-details/add-other-persons/content.test.ts index c35cfc4a10..7deb057586 100644 --- a/src/main/steps/c100-rebuild/other-person-details/add-other-persons/content.test.ts +++ b/src/main/steps/c100-rebuild/other-person-details/add-other-persons/content.test.ts @@ -183,7 +183,7 @@ describe('Add other person > content', () => { }, }, ]; - const fieldss = generateFormFields(dummyApplicants).fields as FormFields; + const fieldss = generateFormFields(dummyApplicants, '').fields as FormFields; const { fieldset1: fieldset1 } = fieldss as Record; const { 'firstName-1': FirstName, 'lastName-1': LastName, remove } = fieldset1.subFields as FormFields; diff --git a/src/main/steps/c100-rebuild/other-person-details/add-other-persons/content.ts b/src/main/steps/c100-rebuild/other-person-details/add-other-persons/content.ts index e20916479a..c073aa6020 100644 --- a/src/main/steps/c100-rebuild/other-person-details/add-other-persons/content.ts +++ b/src/main/steps/c100-rebuild/other-person-details/add-other-persons/content.ts @@ -1,7 +1,9 @@ +import _ from 'lodash'; + import { CaseWithId } from '../../../../app/case/case'; import { C100RebuildPartyDetails } from '../../../../app/case/definition'; import { TranslationFn } from '../../../../app/controller/GetController'; -import { FormContent, GenerateDynamicFormFields } from '../../../../app/form/Form'; +import { FormContent, FormInput, GenerateDynamicFormFields } from '../../../../app/form/Form'; import { isFieldFilledIn, isFieldLetters } from '../../../../app/form/validation'; let updatedForm: FormContent; @@ -66,39 +68,45 @@ const updateFormFields = (form: FormContent, formFields: FormContent['fields']): return updatedForm; }; -export const generateFormFields = (otherPersons: C100RebuildPartyDetails[]): GenerateDynamicFormFields => { +export const generateFormFields = ( + otherPersons: C100RebuildPartyDetails[], + context: string | undefined +): GenerateDynamicFormFields => { const fields = {}; const errors = { en: {}, cy: {}, }; + const nameFieldConfig: FormInput = { + type: 'text', + labelSize: 'm', + classes: 'govuk-!-width-one-half', + validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, + }; for (let index = 0; index < otherPersons.length; index++) { const count = index + 1; const key = `fieldset${count}`; const { id, firstName = '', lastName = '' } = otherPersons[index]; + const inputFieldConfig = { ...nameFieldConfig }; + + if ((context === 'add' && count === otherPersons.length) || (context === 'remove' && count === 1)) { + inputFieldConfig.attributes = { + ...inputFieldConfig.attributes, + autofocus: true, + }; + } fields[key] = { type: 'fieldset', label: l => `${l.Person} ${count}`, classes: 'govuk-fieldset__legend--m', subFields: { - [`firstName-${count}`]: { - type: 'text', - value: firstName, - labelSize: 'm', - classes: 'govuk-!-width-one-half', - label: l => l.firstNameLabel, - validator: value => isFieldFilledIn(value) || isFieldLetters(value), - }, - [`lastName-${count}`]: { - type: 'text', - label: l => l.lastNameLabel, - value: lastName, - classes: 'govuk-!-width-one-half', - labelSize: 'm', - validator: value => isFieldFilledIn(value) || isFieldLetters(value), - }, + [`firstName-${count}`]: { ...inputFieldConfig, label: l => l.firstNameLabel, value: firstName }, + [`lastName-${count}`]: { ...inputFieldConfig, label: l => l.lastNameLabel, value: lastName }, remove: { type: 'button', label: l => `${l.removeOtherPersonLabel} ${count}`, @@ -132,6 +140,9 @@ export const form: FormContent = { hint: hint => hint.firstNameHint, labelSize: 'none', validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, }, c100TempLastName: { type: 'text', @@ -139,6 +150,9 @@ export const form: FormContent = { label: l => l.lastNameLabel, labelSize: 'none', validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, }, add: { type: 'button', @@ -162,15 +176,18 @@ export const form: FormContent = { }, }; -export const getFormFields = (caseData: Partial): FormContent => { - return updateFormFields(form, generateFormFields(caseData?.oprs_otherPersons ?? []).fields); +export const getFormFields = (caseData: Partial, context: string): FormContent => { + return updateFormFields(form, generateFormFields(caseData?.oprs_otherPersons ?? [], context).fields); }; export const generateContent: TranslationFn = content => { const translations = languages[content.language](); const sessionData = content?.userCase?.oprs_otherPersons; - const { fields, errors } = generateFormFields(sessionData ?? []); + const { fields, errors } = generateFormFields( + sessionData ?? [], + _.get(content, 'additionalData.req.session.applicationSettings.dynamicForm.context') + ); translations.errors = { ...translations.errors, diff --git a/src/main/steps/c100-rebuild/other-person-details/address/select/form.njk b/src/main/steps/c100-rebuild/other-person-details/address/select/form.njk index 62bed511be..97e74c27b4 100644 --- a/src/main/steps/c100-rebuild/other-person-details/address/select/form.njk +++ b/src/main/steps/c100-rebuild/other-person-details/address/select/form.njk @@ -1,7 +1,7 @@ {% extends "common/form/form.njk"%} {% block before_fields %} - +

                {{ postcode }}

                {{ adddressPostCode }}

                diff --git a/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/content.test.ts b/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/content.test.ts index a8bb0395b4..bd084821b3 100644 --- a/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/content.test.ts +++ b/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/content.test.ts @@ -8,7 +8,7 @@ import { generateContent } from './content'; jest.mock('../../../../app/form/validation'); const en = { - headingTitle: 'Have you or the children ever been involved in court proceedings?', + title: 'Have you or the children ever been involved in court proceedings?', childrenInvolvedCourtCase: 'Have the children been involved in a court case?', courtOrderProtection: 'Have you had a court order made for your protection?', one: 'Yes', @@ -26,7 +26,7 @@ const en = { }; const cy = { - headingTitle: 'Ydych chi neu’r plant erioed wedi bod ynghlwm ag achos llys?', + title: 'Ydych chi neu’r plant erioed wedi bod ynghlwm ag achos llys?', childrenInvolvedCourtCase: 'Ydy’r plant wedi bod ynghlwm ag achos llys?', courtOrderProtection: 'A oes gorchymyn llys wedi ei wneud ar eich cyfer er mwyn eich diogelu chi?', one: 'Do', diff --git a/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/content.ts b/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/content.ts index 7f6a607042..ba4edca090 100644 --- a/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/content.ts +++ b/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/content.ts @@ -5,7 +5,7 @@ import { isFieldFilledIn } from '../../../../app/form/validation'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export const en = () => ({ - headingTitle: 'Have you or the children ever been involved in court proceedings?', + title: 'Have you or the children ever been involved in court proceedings?', childrenInvolvedCourtCase: 'Have the children been involved in a court case?', courtOrderProtection: 'Have you had a court order made for your protection?', one: 'Yes', @@ -24,7 +24,7 @@ export const en = () => ({ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export const cy = () => ({ - headingTitle: 'Ydych chi neu’r plant erioed wedi bod ynghlwm ag achos llys?', + title: 'Ydych chi neu’r plant erioed wedi bod ynghlwm ag achos llys?', childrenInvolvedCourtCase: 'Ydy’r plant wedi bod ynghlwm ag achos llys?', courtOrderProtection: 'A oes gorchymyn llys wedi ei wneud ar eich cyfer er mwyn eich diogelu chi?', one: 'Do', diff --git a/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/template.njk b/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/template.njk index b341ae678d..b642fb44e2 100644 --- a/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/template.njk +++ b/src/main/steps/c100-rebuild/other-proceedings/current-previous-proceedings/template.njk @@ -3,7 +3,7 @@ {% block page_content %} {{caption}} -

                {{headingTitle}}

                +

                {{title}}

                {{paragraph1}}

                {{paragraph2}}

                {% endblock %} diff --git a/src/main/steps/c100-rebuild/other-proceedings/documentUpload/content.test.ts b/src/main/steps/c100-rebuild/other-proceedings/documentUpload/content.test.ts index b39cd5bc33..6ea944605d 100644 --- a/src/main/steps/c100-rebuild/other-proceedings/documentUpload/content.test.ts +++ b/src/main/steps/c100-rebuild/other-proceedings/documentUpload/content.test.ts @@ -1,5 +1,5 @@ import languageAssertions from '../../../../../test/unit/utils/languageAssertions'; -import { FormContent, FormFields, FormOptions, LanguageLookup } from '../../../../app/form/Form'; +import { FormContent, LanguageLookup } from '../../../../app/form/Form'; //import { isFieldFilledIn } from '../../../../app/form/validation'; import { CommonContent, generatePageContent } from '../../../common/common.content'; @@ -114,15 +114,6 @@ describe('applicant personal details > international elements > start', () => { languageAssertions('cy', cy, () => generateContent({ ...commonContent, language: 'cy' })); }); - test('should contain documentUploadProceed field', () => { - const generatedContent = generateContent(commonContent) as Record; - const form = generatedContent.form as FormContent; - const fields = form.fields as FormFields; - const documentUploadProceedField = fields.documentUploadProceed as FormOptions; - expect(documentUploadProceedField.type).toBe('hidden'); - expect(documentUploadProceedField.labelHidden).toBe(true); - }); - test('should contain Continue button', () => { const generatedContent = generateContent(commonContent); const form = generatedContent.form as FormContent | undefined; diff --git a/src/main/steps/c100-rebuild/other-proceedings/documentUpload/content.ts b/src/main/steps/c100-rebuild/other-proceedings/documentUpload/content.ts index f18292745c..e2912352f6 100644 --- a/src/main/steps/c100-rebuild/other-proceedings/documentUpload/content.ts +++ b/src/main/steps/c100-rebuild/other-proceedings/documentUpload/content.ts @@ -101,14 +101,7 @@ const languages = { }; export const form: FormContent = { - fields: { - documentUploadProceed: { - type: 'hidden', - label: l => l.uploadDocumentFileUpload, - labelHidden: true, - value: 'true', - }, - }, + fields: {}, submit: { text: l => l.onlycontinue, }, diff --git a/src/main/steps/c100-rebuild/other-proceedings/order-details/content.test.ts b/src/main/steps/c100-rebuild/other-proceedings/order-details/content.test.ts index ebd3c348e6..b8b7b455fe 100644 --- a/src/main/steps/c100-rebuild/other-proceedings/order-details/content.test.ts +++ b/src/main/steps/c100-rebuild/other-proceedings/order-details/content.test.ts @@ -10,7 +10,7 @@ import { generateContent, generateFormFields, getOrderSessionDataShape } from '. jest.mock('../../../../app/form/validation'); const en = { - pageTitle: 'Provide details of court cases you or the children have been involved in', + title: 'Provide details of court cases you or the children have been involved in', additionalNote: 'If you do not have the specific details, you can skip this section and proceed with the application.', emergencyProtectionOrderLabel: 'Emergency Protection Order', @@ -63,7 +63,7 @@ const en = { }; const cy = { - pageTitle: 'Darparu manylion am achosion llys rydych chi neu’r plant wedi bod ynghlwm â hwy', + title: 'Darparu manylion am achosion llys rydych chi neu’r plant wedi bod ynghlwm â hwy', additionalNote: "Os nad oes gennych y manylion penodol, gallwch hepgor yr adran hon a pharhau â'r cais.", emergencyProtectionOrderLabel: 'Gorchymyn Diogelu Brys', childArrangementOrderLabel: 'Gorchymyn Trefniadau Plant', @@ -135,7 +135,7 @@ describe('other proceedings > order-details > content', () => { }); // eslint-disable-next-line jest/expect-expect test('should return correct english content', () => { - const { errors } = generateFormFields(C100OrderTypes.CARE_ORDER, [getOrderSessionDataShape()]); + const { errors } = generateFormFields(C100OrderTypes.CARE_ORDER, [getOrderSessionDataShape()], ''); languageAssertions( 'en', { @@ -151,7 +151,7 @@ describe('other proceedings > order-details > content', () => { // eslint-disable-next-line jest/expect-expect test('should return correct welsh content', () => { - const { errors } = generateFormFields(C100OrderTypes.EMERGENCY_PROTECTION_ORDER, [getOrderSessionDataShape()]); + const { errors } = generateFormFields(C100OrderTypes.EMERGENCY_PROTECTION_ORDER, [getOrderSessionDataShape()], ''); languageAssertions( 'cy', { @@ -244,7 +244,6 @@ describe('other proceedings > order-details > content', () => { expect(currentOrder.values[0].value).toBe('Yes'); expect((currentOrder.values[1].label as Function)(generatedContent)).toBe(en.no1); expect(currentOrder.values[1].value).toBe('No'); - expect(currentOrder.values[2].value).toBe(''); expect(orderEndDate.type).toBe('date'); expect(orderEndDate.classes).toBe('govuk-date-input'); @@ -302,7 +301,6 @@ describe('other proceedings > order-details > content', () => { expect(orderCopy.values[0].value).toBe('Yes'); expect((orderCopy.values[1].label as Function)(generatedContent)).toBe(en.no2); expect(orderCopy.values[1].value).toBe('No'); - expect(orderCopy.values[2].value).toBe(''); expect(addOrder.type).toBe('button'); expect((addOrder.label as Function)(generatedContent)).toBe(en.addOrderLabel); diff --git a/src/main/steps/c100-rebuild/other-proceedings/order-details/content.ts b/src/main/steps/c100-rebuild/other-proceedings/order-details/content.ts index 6753978274..03868ea947 100644 --- a/src/main/steps/c100-rebuild/other-proceedings/order-details/content.ts +++ b/src/main/steps/c100-rebuild/other-proceedings/order-details/content.ts @@ -1,4 +1,6 @@ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ +import _ from 'lodash'; + import { CaseDate, CaseWithId } from '../../../../app/case/case'; import { C100OrderInterface, @@ -7,14 +9,14 @@ import { YesNoEmpty, } from '../../../../app/case/definition'; import { TranslationFn } from '../../../../app/controller/GetController'; -import { FormContent, GenerateDynamicFormFields } from '../../../../app/form/Form'; +import { FormContent, FormInput, GenerateDynamicFormFields } from '../../../../app/form/Form'; import { covertToDateObject } from '../../../../app/form/parser'; import { areDateFieldsFilledIn, isDateInputInvalid, isFutureDate } from '../../../../app/form/validation'; export * from './routeGuard'; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export const en = () => ({ - pageTitle: 'Provide details of court cases you or the children have been involved in', + title: 'Provide details of court cases you or the children have been involved in', additionalNote: 'If you do not have the specific details, you can skip this section and proceed with the application.', emergencyProtectionOrderLabel: 'Emergency Protection Order', @@ -67,7 +69,7 @@ export const en = () => ({ }); export const cy = () => ({ - pageTitle: 'Darparu manylion am achosion llys rydych chi neu’r plant wedi bod ynghlwm â hwy', + title: 'Darparu manylion am achosion llys rydych chi neu’r plant wedi bod ynghlwm â hwy', additionalNote: "Os nad oes gennych y manylion penodol, gallwch hepgor yr adran hon a pharhau â'r cais.", emergencyProtectionOrderLabel: 'Gorchymyn Diogelu Brys', childArrangementOrderLabel: 'Gorchymyn Trefniadau Plant', @@ -125,7 +127,8 @@ const languages = { export const generateFormFields = ( orderType: C100OrderTypes, - orders: C100OrderInterface[] + orders: C100OrderInterface[], + context: string | undefined ): GenerateDynamicFormFields => { const fields = {}; const errors = { @@ -137,7 +140,7 @@ export const generateFormFields = ( const count = index + 1; const key = `fieldset${count}`; - fields[key] = createFormFileds(count, orderType, orders, index); + fields[key] = createFormFileds(count, orderType, orders, index, context); // mark the selection for the radio buttons based on the option chosen const currentOrder = fields[key].subFields[`currentOrder-${count}`]; @@ -220,12 +223,17 @@ export const form: FormContent = { text: l => l.saveAndComeLater, }, }; -export const getFormFields = (caseData: Partial, orderType: C100OrderTypes): FormContent => { +export const getFormFields = ( + caseData: Partial, + orderType: C100OrderTypes, + context: string +): FormContent => { const orderSessionData = caseData?.op_otherProceedings?.order?.[C100OrderTypeKeyMapper[orderType]]; return updateFormFields( form, - generateFormFields(orderType, !orderSessionData?.length ? [getOrderSessionDataShape()] : orderSessionData).fields + generateFormFields(orderType, !orderSessionData?.length ? [getOrderSessionDataShape()] : orderSessionData, context) + .fields ); }; @@ -235,7 +243,8 @@ export const generateContent: TranslationFn = content => { const orderSessionData = content?.userCase?.op_otherProceedings?.order?.[C100OrderTypeKeyMapper[orderType]]; const { fields, errors } = generateFormFields( orderType, - !orderSessionData?.length ? [getOrderSessionDataShape()] : orderSessionData + !orderSessionData?.length ? [getOrderSessionDataShape()] : orderSessionData, + _.get(content, 'additionalData.req.session.applicationSettings.dynamicForm.context') ); // ammend the existing translation with updated error field messages translations.errors = { @@ -248,7 +257,26 @@ export const generateContent: TranslationFn = content => { form: updateFormFields(form, fields), }; }; -const createFormFileds = (count: number, orderType: C100OrderTypes, orders: C100OrderInterface[], index: number) => { + +const createFormFileds = ( + count: number, + orderType: C100OrderTypes, + orders: C100OrderInterface[], + index: number, + context: string | undefined +) => { + const orderDetailFieldConfig: FormInput = { + type: 'text', + label: l => l.courtIssuedLabel, + labelSize: 's', + }; + + if (context === 'add' && count === orders.length) { + orderDetailFieldConfig['attributes'] = { + autofocus: true, + }; + } + return { type: 'fieldset', label: l => { @@ -257,10 +285,8 @@ const createFormFileds = (count: number, orderType: C100OrderTypes, orders: C100 classes: 'govuk-fieldset__legend--m', subFields: { [`orderDetail-${count}`]: { - type: 'text', + ...orderDetailFieldConfig, value: orders[index].orderDetail, - label: l => l.courtIssuedLabel, - labelSize: 's', }, [`caseNo-${count}`]: { type: 'text', @@ -321,9 +347,6 @@ const createFormFileds = (count: number, orderType: C100OrderTypes, orders: C100 label: l => l.no1, value: YesNoEmpty.NO, }, - { - value: YesNoEmpty.EMPTY, - }, ], }, [`orderEndDate-${count}`]: { @@ -377,9 +400,6 @@ const createFormFileds = (count: number, orderType: C100OrderTypes, orders: C100 label: l => l.no2, value: YesNoEmpty.NO, }, - { - value: YesNoEmpty.EMPTY, - }, ], }, }, diff --git a/src/main/steps/c100-rebuild/other-proceedings/order-details/postController.ts b/src/main/steps/c100-rebuild/other-proceedings/order-details/postController.ts index e018f1f58c..04ef64e0a1 100644 --- a/src/main/steps/c100-rebuild/other-proceedings/order-details/postController.ts +++ b/src/main/steps/c100-rebuild/other-proceedings/order-details/postController.ts @@ -1,5 +1,6 @@ import autobind from 'autobind-decorator'; import { Response } from 'express'; +import _ from 'lodash'; import { Case } from '../../../../app/case/case'; import { @@ -11,6 +12,7 @@ import { import { AppRequest } from '../../../../app/controller/AppRequest'; import { AnyObject, PostController } from '../../../../app/controller/PostController'; import { Form, FormFields, FormFieldsFn } from '../../../../app/form/Form'; +import { setDynamicFormContext } from '../../people/util'; import { getFormFields, getOrderSessionDataShape } from './content'; @@ -23,7 +25,10 @@ export default class AddOrderDetailsPostController extends PostController, res: Response): Promise { const orderType = req.params.orderType as C100OrderTypes; const orderTypeCaseKey = C100OrderTypeKeyMapper[orderType]; - const form = new Form(getFormFields(req.session.userCase, orderType).fields as FormFields); + const form = new Form( + getFormFields(req.session.userCase, orderType, _.get(req, 'session.applicationSettings.dynamicForm.context')) + .fields as FormFields + ); const { addOrder, onlycontinue, saveAndComeLater, ...formFields } = req.body; const { _csrf, ...formData } = form.getParsedBody(formFields); const newData: Partial = { @@ -59,6 +64,7 @@ export default class AddOrderDetailsPostController extends PostController{{pageTitle}} +

                {{title}}

                {{additionalNote}}

                {% endblock %} \ No newline at end of file diff --git a/src/main/steps/c100-rebuild/people/AddPeoplePostContoller.ts b/src/main/steps/c100-rebuild/people/AddPeoplePostContoller.ts index ac81eb05a5..0898b0c326 100644 --- a/src/main/steps/c100-rebuild/people/AddPeoplePostContoller.ts +++ b/src/main/steps/c100-rebuild/people/AddPeoplePostContoller.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import autobind from 'autobind-decorator'; import { Response } from 'express'; +import _ from 'lodash'; import { C100RebuildPartyDetails, @@ -17,12 +18,12 @@ import { getFormFields as getAddOtherPersonFormFields } from '../other-person-de import { getFormFields as getAddRespondentsFormFields } from '../respondent-details/add-respondents/content'; import { CaseWithId } from './../../../app/case/case'; -import { getDataShape, transformAddPeople } from './util'; +import { getDataShape, setDynamicFormContext, transformAddPeople } from './util'; type ContextReference = { dataReference: string; context: PartyType; - formRef: (caseData: Partial) => FormContent; + formRef: (caseData: Partial, context: string) => FormContent; }; type FeatureContext = { [key: string]: ContextReference }; @@ -89,10 +90,14 @@ export default class AddPersonPostController { req.session.userCase[dataReference] = req.session.userCase[dataReference]?.filter( person => person.id !== removePersonId ); + + setDynamicFormContext(req, 'remove'); return this.parent.redirect(req, res, req.originalUrl); } - const form = new Form(formRef(req.session.userCase).fields as FormFields); + const form = new Form( + formRef(req.session.userCase, _.get(req, 'session.applicationSettings.dynamicForm.context')).fields as FormFields + ); const { _csrf, ...formData } = form.getParsedBody(formFields); const { c100TempFirstName, c100TempLastName, ...rest } = formData; @@ -106,6 +111,8 @@ export default class AddPersonPostController { if (add) { this.tryAddingPerson(fullName, form, formData, req, c100TempFirstName, c100TempLastName); + setDynamicFormContext(req, 'add'); + return this.parent.redirect(req, res, req.originalUrl); } else if (onlycontinue) { req.session.userCase[dataReference] = transformAddPeople(context, rest, req.session.userCase[dataReference]); diff --git a/src/main/steps/c100-rebuild/people/util.ts b/src/main/steps/c100-rebuild/people/util.ts index 5768224fe2..549300bed1 100644 --- a/src/main/steps/c100-rebuild/people/util.ts +++ b/src/main/steps/c100-rebuild/people/util.ts @@ -12,6 +12,7 @@ import { YesNoEmpty, YesOrNo, } from '../../../app/case/definition'; +import { AppRequest } from '../../../app/controller/AppRequest'; export type People = ChildrenDetails | OtherChildrenDetails | C100RebuildPartyDetails | C100Applicant; @@ -155,3 +156,16 @@ export const dobUnknown = (formData: Record): string => { : ''; return formData?.isDateOfBirthUnknown === YesNoEmpty.YES ? isExactDobDataPresent : ''; }; + +export const setDynamicFormContext = (req: AppRequest, context: string): void => { + req.session.applicationSettings = { + ...req.session.applicationSettings, + dynamicForm: { + context, + }, + }; + setTimeout(() => { + delete req.session?.applicationSettings?.dynamicForm; + req.session.save(); + }, 5000); +}; diff --git a/src/main/steps/c100-rebuild/respondent-details/add-respondents/content.test.ts b/src/main/steps/c100-rebuild/respondent-details/add-respondents/content.test.ts index 3a434a8c05..48cf872e76 100644 --- a/src/main/steps/c100-rebuild/respondent-details/add-respondents/content.test.ts +++ b/src/main/steps/c100-rebuild/respondent-details/add-respondents/content.test.ts @@ -101,7 +101,7 @@ describe('Add respondent > content', () => { }); // eslint-disable-next-line jest/expect-expect test('should return correct english content', () => { - const { errors } = generateFormFields([getDataShape(PartyType.RESPONDENT) as C100RebuildPartyDetails]); + const { errors } = generateFormFields([getDataShape(PartyType.RESPONDENT) as C100RebuildPartyDetails], ''); languageAssertions( 'en', { @@ -117,7 +117,7 @@ describe('Add respondent > content', () => { // eslint-disable-next-line jest/expect-expect test('should return correct welsh content', () => { - const { errors } = generateFormFields([getDataShape(PartyType.RESPONDENT) as C100RebuildPartyDetails]); + const { errors } = generateFormFields([getDataShape(PartyType.RESPONDENT) as C100RebuildPartyDetails], ''); languageAssertions( 'cy', { diff --git a/src/main/steps/c100-rebuild/respondent-details/add-respondents/content.ts b/src/main/steps/c100-rebuild/respondent-details/add-respondents/content.ts index d7761f0f41..69169b4319 100644 --- a/src/main/steps/c100-rebuild/respondent-details/add-respondents/content.ts +++ b/src/main/steps/c100-rebuild/respondent-details/add-respondents/content.ts @@ -1,7 +1,9 @@ +import _ from 'lodash'; + import { CaseWithId } from '../../../../app/case/case'; import { C100RebuildPartyDetails } from '../../../../app/case/definition'; import { TranslationFn } from '../../../../app/controller/GetController'; -import { FormContent, GenerateDynamicFormFields } from '../../../../app/form/Form'; +import { FormContent, FormInput, GenerateDynamicFormFields } from '../../../../app/form/Form'; import { isFieldFilledIn, isFieldLetters } from '../../../../app/form/validation'; let updatedForm: FormContent; @@ -68,39 +70,45 @@ const updateFormFields = (form: FormContent, formFields: FormContent['fields']): return updatedForm; }; -export const generateFormFields = (respondents: C100RebuildPartyDetails[]): GenerateDynamicFormFields => { +export const generateFormFields = ( + respondents: C100RebuildPartyDetails[], + context: string | undefined +): GenerateDynamicFormFields => { const fields = {}; const errors = { en: {}, cy: {}, }; + const nameFieldConfig: FormInput = { + type: 'text', + labelSize: 'm', + classes: 'govuk-!-width-one-half', + validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, + }; for (let index = 0; index < respondents.length; index++) { const count = index + 1; const key = `fieldset${count}`; const { id, firstName = '', lastName = '' } = respondents[index]; + const inputFieldConfig = { ...nameFieldConfig }; + + if ((context === 'add' && count === respondents.length) || (context === 'remove' && count === 1)) { + inputFieldConfig.attributes = { + ...inputFieldConfig.attributes, + autofocus: true, + }; + } fields[key] = { type: 'fieldset', label: l => `${l.Respondent} ${count}`, classes: 'govuk-fieldset__legend--m', subFields: { - [`firstName-${count}`]: { - type: 'text', - value: firstName, - labelSize: 'm', - classes: 'govuk-!-width-one-half', - label: l => l.firstNameLabel, - validator: value => isFieldFilledIn(value) || isFieldLetters(value), - }, - [`lastName-${count}`]: { - type: 'text', - label: l => l.lastNameLabel, - value: lastName, - classes: 'govuk-!-width-one-half', - labelSize: 'm', - validator: value => isFieldFilledIn(value) || isFieldLetters(value), - }, + [`firstName-${count}`]: { ...inputFieldConfig, label: l => l.firstNameLabel, value: firstName }, + [`lastName-${count}`]: { ...inputFieldConfig, label: l => l.lastNameLabel, value: lastName }, remove: { type: 'button', label: l => `${l.removeRespondentLabel} ${count}`, @@ -134,6 +142,9 @@ export const form: FormContent = { hint: hint => hint.firstNameHint, labelSize: 'none', validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, }, c100TempLastName: { type: 'text', @@ -141,6 +152,9 @@ export const form: FormContent = { label: l => l.lastNameLabel, labelSize: 'none', validator: value => isFieldFilledIn(value) || isFieldLetters(value), + attributes: { + autocomplete: 'off', + }, }, add: { type: 'button', @@ -164,15 +178,18 @@ export const form: FormContent = { }, }; -export const getFormFields = (caseData: Partial): FormContent => { - return updateFormFields(form, generateFormFields(caseData?.resp_Respondents ?? []).fields); +export const getFormFields = (caseData: Partial, context: string): FormContent => { + return updateFormFields(form, generateFormFields(caseData?.resp_Respondents ?? [], context).fields); }; export const generateContent: TranslationFn = content => { const translations = languages[content.language](); const sessionData = content?.userCase?.resp_Respondents; - const { fields, errors } = generateFormFields(sessionData ?? []); + const { fields, errors } = generateFormFields( + sessionData ?? [], + _.get(content, 'additionalData.req.session.applicationSettings.dynamicForm.context') + ); translations.errors = { ...translations.errors, diff --git a/src/main/steps/c100-rebuild/respondent-details/address/select/form.njk b/src/main/steps/c100-rebuild/respondent-details/address/select/form.njk index 62bed511be..97e74c27b4 100644 --- a/src/main/steps/c100-rebuild/respondent-details/address/select/form.njk +++ b/src/main/steps/c100-rebuild/respondent-details/address/select/form.njk @@ -1,7 +1,7 @@ {% extends "common/form/form.njk"%} {% block before_fields %} - +

                {{ postcode }}

                {{ adddressPostCode }}

                diff --git a/src/main/steps/c100-rebuild/screening-questions/alternative-resolution/template.njk b/src/main/steps/c100-rebuild/screening-questions/alternative-resolution/template.njk index 73a21c44d8..ec22c8bdb1 100644 --- a/src/main/steps/c100-rebuild/screening-questions/alternative-resolution/template.njk +++ b/src/main/steps/c100-rebuild/screening-questions/alternative-resolution/template.njk @@ -4,10 +4,10 @@

                {{titleDetail}}

                {{titleDetail2}}

                {{para5Link|safe}}

                -

                {{secondTitle}}

                +

                {{secondTitle}}

                {{para2FirstLine}} {{para2FirstLink|safe}} {{para2SecondLine}} {{para2SecondLink|safe}}

                {{para3}}

                -

                {{fourthTitle}}

                +

                {{fourthTitle}}

                {{para8}}

                {{para9}}

                  @@ -15,6 +15,6 @@
                • {{para9list2}}

                {{para10Link|safe}}

                -

                {{fifthTitle}}

                +

                {{fifthTitle}}

                {{para11}} {{para11Link|safe}}

                {% endblock %} diff --git a/src/main/steps/c100-rebuild/withdraw/confirmation/template.njk b/src/main/steps/c100-rebuild/withdraw/confirmation/template.njk index 4a0e8677e3..8a0f19b1b3 100644 --- a/src/main/steps/c100-rebuild/withdraw/confirmation/template.njk +++ b/src/main/steps/c100-rebuild/withdraw/confirmation/template.njk @@ -1,24 +1,22 @@ {% extends "common/template.njk" %} - {% block page_content %} - {% block backLink %}{% endblock %} -
                + {% block backLink %}{% endblock %} +
                -
                -

                - {{successMessage}} -

                -
                -

                {{subContent}}

                -

                {{secondaryContent}}

                -

                {{whatHappensNext}}

                -

                {{childArrangementContent}}

                - -
                +
                +

                + {{successMessage}} +

                +
                +

                {{subContent}}

                +

                {{secondaryContent}}

                +

                {{whatHappensNext}}

                +

                {{childArrangementContent}}

                + +
                {% endblock %} \ No newline at end of file diff --git a/src/main/steps/common/add-legal-representative/template.njk b/src/main/steps/common/add-legal-representative/template.njk index c7461fa074..3c06d7221e 100644 --- a/src/main/steps/common/add-legal-representative/template.njk +++ b/src/main/steps/common/add-legal-representative/template.njk @@ -4,9 +4,11 @@

                {{ title }}

                {{legalRepresentativeInformationLine1}}

                {{legalRepresentativeInformationLine2}}

                -
                  -
                • {{legalRepresentativeInformationLine3}}{{userCase.id}}
                • -
                • {{legalRepresentativeInformationLine4}}{{partyName}}
                • + +
                    +
                  • {{legalRepresentativeInformationLine3}}{{userCase.id}}

                  • +
                  • {{legalRepresentativeInformationLine4}}{{partyName}}

                  +

                  {{legalRepresentativeInformationLine5}}

                  {% endblock %} diff --git a/src/main/steps/common/common.content.ts b/src/main/steps/common/common.content.ts index e05cef6cf8..67bbd1607b 100644 --- a/src/main/steps/common/common.content.ts +++ b/src/main/steps/common/common.content.ts @@ -7,6 +7,7 @@ import { C100_APPLICANT_TASKLIST, C100_URL, COMMON_PAGE_URLS } from '../../steps import AppSurvey from './app-survey/appSurveyController'; import { appSurveyContents } from './app-survey/content'; +import { interpolate } from './string-parser'; export const en = { phase: 'Beta', @@ -15,7 +16,7 @@ export const en = { commonServiceName: 'Child arrangements and family injunctions', c100ServiceName: 'Child arrangements', fl401ServiceName: 'Family Injunctions', - languageToggle: 'Cymraeg', + languageToggle: '{language}', govUk: 'GOV.UK', back: 'Back', continue: 'Save and continue', @@ -140,7 +141,7 @@ export const cy: typeof en = { commonServiceName: 'Trefniadau plant a gwaharddebau teulu', c100ServiceName: 'Trefniadau plant', fl401ServiceName: 'Gwaharddeb Teulu', - languageToggle: 'English', + languageToggle: '{language}', govUk: 'GOV.UK', back: 'Yn ôl', continue: 'Cadw a pharhau', @@ -313,6 +314,11 @@ export const generatePageContent = ({ additionalData, userId, inPageSurveyContent, + languageToggle: interpolate(commonTranslations.languageToggle, { + lang: language === 'en' ? 'cy' : 'en', + href: `href="?lng=${language === 'en' ? 'cy' : 'en'}"`, + language: language === 'en' ? 'Cymraeg' : 'English', + }), }; if (pageContent !== null && pageContent !== undefined) { diff --git a/src/main/steps/common/confirm-contact-details/checkanswers/content.test.ts b/src/main/steps/common/confirm-contact-details/checkanswers/content.test.ts index 7cc9698b95..4822b069b2 100644 --- a/src/main/steps/common/confirm-contact-details/checkanswers/content.test.ts +++ b/src/main/steps/common/confirm-contact-details/checkanswers/content.test.ts @@ -6,8 +6,8 @@ import { CommonContent, en as enContent, generatePageContent } from '../../commo import { generateContent } from './content'; const en = { - section: 'Check your details', - title: 'Read the information to make sure it is correct, and add any missing details', + title: 'Check your details', + subTitle: 'Read the information to make sure it is correct, and add any missing details', contactdetailpriv: 'if you do not want to share your contact details with the other person in the case,update the section', contactdetailprivlinktext: 'keep your details private', @@ -31,8 +31,8 @@ const en = { }; const cy: typeof en = { - section: 'Gwiriwch eich manylion cyswllt', - title: 'Darllenwch yr wybodaeth i wneud yn siŵr ei bod yn gywir, ac ychwanegwch unrhyw fanylion sydd ar goll', + title: 'Gwiriwch eich manylion cyswllt', + subTitle: 'Darllenwch yr wybodaeth i wneud yn siŵr ei bod yn gywir, ac ychwanegwch unrhyw fanylion sydd ar goll', contactdetailpriv: 'Os nad ydych eisiau rhannu eich manylion cyswllt gyda’r unigolyn arall yn yr achos, diweddarwch yr adran', contactdetailprivlinktext: 'Cadw eich manylion yn breifat', @@ -98,6 +98,7 @@ describe('address confirmation > content', () => { }, ], title: '', + subTitle: '', }, ]); }); @@ -132,6 +133,7 @@ describe('address confirmation > content', () => { }, ], title: '', + subTitle: '', }, ]); }); @@ -221,6 +223,7 @@ describe('address confirmation > content', () => { }, ], title: '', + subTitle: '', }, ]); }); diff --git a/src/main/steps/common/confirm-contact-details/checkanswers/content.ts b/src/main/steps/common/confirm-contact-details/checkanswers/content.ts index 305dfd6a10..f3cbfdab21 100644 --- a/src/main/steps/common/confirm-contact-details/checkanswers/content.ts +++ b/src/main/steps/common/confirm-contact-details/checkanswers/content.ts @@ -11,8 +11,8 @@ import { getFormattedDate, summaryList } from '../../../common/summary/utils'; import { isMandatoryFieldsFilled } from './utils'; export const enContent = { - section: 'Check your details', - title: 'Read the information to make sure it is correct, and add any missing details', + title: 'Check your details', + subTitle: 'Read the information to make sure it is correct, and add any missing details', contactdetailpriv: 'if you do not want to share your contact details with the other person in the case,update the section', contactdetailprivlinktext: 'keep your details private', @@ -64,8 +64,8 @@ const en = (content: CommonContent) => { }; export const cyContent: typeof enContent = { - section: 'Gwiriwch eich manylion cyswllt', - title: 'Darllenwch yr wybodaeth i wneud yn siŵr ei bod yn gywir, ac ychwanegwch unrhyw fanylion sydd ar goll', + title: 'Gwiriwch eich manylion cyswllt', + subTitle: 'Darllenwch yr wybodaeth i wneud yn siŵr ei bod yn gywir, ac ychwanegwch unrhyw fanylion sydd ar goll', contactdetailpriv: 'Os nad ydych eisiau rhannu eich manylion cyswllt gyda’r unigolyn arall yn yr achos, diweddarwch yr adran', contactdetailprivlinktext: 'Cadw eich manylion yn breifat', diff --git a/src/main/steps/common/confirm-contact-details/checkanswers/template.njk b/src/main/steps/common/confirm-contact-details/checkanswers/template.njk index 94658ecdff..777d278429 100644 --- a/src/main/steps/common/confirm-contact-details/checkanswers/template.njk +++ b/src/main/steps/common/confirm-contact-details/checkanswers/template.njk @@ -1,9 +1,9 @@ {% extends "common/summary/template.njk" %} {% block page_content %} -{% if section %} - {{ section }} +{% if title %} +

                  {{ title }}

                  {% endif %} - {% if title %} -

                  {{ title }}

                  + {% if subTitle %} +
                  {{ subTitle }}
                  {% endif %} {% endblock %} diff --git a/src/main/steps/common/contact-preference/review/content.test.ts b/src/main/steps/common/contact-preference/review/content.test.ts index a5d36db796..bc4d613354 100644 --- a/src/main/steps/common/contact-preference/review/content.test.ts +++ b/src/main/steps/common/contact-preference/review/content.test.ts @@ -21,7 +21,6 @@ const en = { warningText: 'Make sure that your contact details are up to date.', email: 'Email', change: 'Change', - nameText: 'name', address: 'Address', addressLowerCase: 'address', completeSection: 'Complete this section', @@ -41,7 +40,6 @@ const cy = { warningText: 'Sicrhewch fod eich manylion cyswllt yn gyfredol.', email: 'E-bost', change: 'Newid', - nameText: 'enw', address: 'Cyfeiriad', addressLowerCase: 'cyfeiriad', completeSection: 'Llenwch yr adran hon', diff --git a/src/main/steps/common/contact-preference/review/content.ts b/src/main/steps/common/contact-preference/review/content.ts index 246e046d8b..9297db8805 100644 --- a/src/main/steps/common/contact-preference/review/content.ts +++ b/src/main/steps/common/contact-preference/review/content.ts @@ -24,7 +24,6 @@ export const en = () => ({ warningText: 'Make sure that your contact details are up to date.', email: 'Email', change: 'Change', - nameText: 'name', address: 'Address', addressLowerCase: 'address', completeSection: 'Complete this section', @@ -44,7 +43,6 @@ export const cy = () => ({ warningText: 'Sicrhewch fod eich manylion cyswllt yn gyfredol.', email: 'E-bost', change: 'Newid', - nameText: 'enw', address: 'Cyfeiriad', addressLowerCase: 'cyfeiriad', completeSection: 'Llenwch yr adran hon', diff --git a/src/main/steps/common/contact-preference/review/template.njk b/src/main/steps/common/contact-preference/review/template.njk index f4ce74dbc6..96fb88de65 100644 --- a/src/main/steps/common/contact-preference/review/template.njk +++ b/src/main/steps/common/contact-preference/review/template.njk @@ -27,8 +27,9 @@
                  {{change}} - - {{nameText}} + + {{ email if contactPreference === 'email' else address }} +
                @@ -45,4 +46,4 @@ iconFallbackText: "Warning" }) }} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/main/steps/common/documents/upload/document-sharing-details/template.njk b/src/main/steps/common/documents/upload/document-sharing-details/template.njk index bb5e968c15..3eec58cf96 100644 --- a/src/main/steps/common/documents/upload/document-sharing-details/template.njk +++ b/src/main/steps/common/documents/upload/document-sharing-details/template.njk @@ -8,8 +8,8 @@ {% block page_content %}

                {{cardTitle}}

                -
                {% if docCategory === 'fm5-document' %} diff --git a/src/main/steps/common/documents/upload/upload-documents-success/template.njk b/src/main/steps/common/documents/upload/upload-documents-success/template.njk index 5424c406aa..0657aea571 100644 --- a/src/main/steps/common/documents/upload/upload-documents-success/template.njk +++ b/src/main/steps/common/documents/upload/upload-documents-success/template.njk @@ -16,7 +16,7 @@ {% if haveReasonForDocNotToBeShared === "No"%} {% set html %} -

                {{ bannerTitle }}

                +

                {{ bannerTitle }}

                {% for content in bannerContents %}

                {{ content | safe }}

                {% endfor %} @@ -41,7 +41,6 @@ -
                diff --git a/src/main/steps/common/documents/upload/upload-your-documents/template.njk b/src/main/steps/common/documents/upload/upload-your-documents/template.njk index 648c285d69..346eb3c520 100644 --- a/src/main/steps/common/documents/upload/upload-your-documents/template.njk +++ b/src/main/steps/common/documents/upload/upload-your-documents/template.njk @@ -26,11 +26,11 @@ method="post" novalidate>
                -
                +

                -

                + {{ govukTextarea({ name: "statementText", @@ -74,9 +74,11 @@
                {% endif %}
                -
              diff --git a/src/main/steps/tasklistresponse/summary-confirmation/template.njk b/src/main/steps/tasklistresponse/summary-confirmation/template.njk index 0189bfe6ea..29f3ac310f 100644 --- a/src/main/steps/tasklistresponse/summary-confirmation/template.njk +++ b/src/main/steps/tasklistresponse/summary-confirmation/template.njk @@ -23,7 +23,7 @@ {{list1 |safe}}
            -

            {{line4}}

            +

            {{line4}}

              diff --git a/src/main/steps/tasklistresponse/summary/content.test.ts b/src/main/steps/tasklistresponse/summary/content.test.ts index eb2161ff0b..65d5661d61 100644 --- a/src/main/steps/tasklistresponse/summary/content.test.ts +++ b/src/main/steps/tasklistresponse/summary/content.test.ts @@ -32,8 +32,8 @@ describe('citizen-home content', () => { }); test('should return correct english content', () => { - expect(generatedContent.title).toEqual('Please review your answers before you complete your response.'); - expect(generatedContent.section).toEqual('Check your answers'); + expect(generatedContent.subTitle).toEqual('Please review your answers before you complete your response.'); + expect(generatedContent.title).toEqual('Check your answers'); expect(generatedContent).not.toEqual(''); }); @@ -66,8 +66,8 @@ describe('citizen-home content', () => { c1A_safetyConernAbout: [C1ASafteyConcernsAbout.RESPONDENT], }; const generatedContent1 = generateContent(commonContent1); - expect(generatedContent1.title).toEqual('Please review your answers before you complete your response.'); - expect(generatedContent1.section).toEqual('Check your answers'); + expect(generatedContent1.subTitle).toEqual('Please review your answers before you complete your response.'); + expect(generatedContent1.title).toEqual('Check your answers'); expect(generatedContent1).not.toEqual(''); }); diff --git a/src/main/steps/tasklistresponse/summary/content.ts b/src/main/steps/tasklistresponse/summary/content.ts index a839f6deaf..0b48e4ec04 100644 --- a/src/main/steps/tasklistresponse/summary/content.ts +++ b/src/main/steps/tasklistresponse/summary/content.ts @@ -111,8 +111,8 @@ export const enConfirmYourDetailsContent = { }; export const enContent = { - section: 'Check your answers', - title: 'Please review your answers before you complete your response.', + title: 'Check your answers', + subTitle: 'Please review your answers before you complete your response.', title2: 'Current or previous court cases', sectionTitles: { title: 'Current or previous proceeding', @@ -186,7 +186,7 @@ export const enContentProceding = { No: 'No ', errors: {}, sectionTitles: { - otherProceedings: 'Current or previous proceedings', + title: 'Current or previous proceedings', }, keys: { childrenInvolvedCourtCase: 'Have the children been involved in a court case?', @@ -305,8 +305,8 @@ export const enResponseToAOH = { }; export const cyContent: typeof enContent = { - section: 'Gwirio eich atebion', - title: 'Edrychwch dros eich atebion cyn i chi gyflwyno eich ymateb', + title: 'Gwirio eich atebion', + subTitle: 'Edrychwch dros eich atebion cyn i chi gyflwyno eich ymateb', title2: 'Achosion llys cyfredol neu flaenorol', sectionTitles: { title: 'Achos cyfredol neu flaenorol', @@ -354,7 +354,7 @@ export const cyContentProceding = { No: 'No -welsh', errors: {}, sectionTitles: { - otherProceedings: 'Achos cyfredol neu flaenorol', + title: 'Achos cyfredol neu flaenorol', }, keys: { childrenInvolvedCourtCase: "Ydy'r plant wedi bod yn rhan o achos llys?", @@ -644,11 +644,12 @@ const en = (content: CommonContent) => { enlegalRepresntationContent, userCase, urls, - enlegalRepresntationContent.sectionTitles.title, - content.language + '', + content.language, + enlegalRepresntationContent.sectionTitles.title ), - summaryList(enConsentContent, userCase, urls, enConsentContent.sectionTitles.title, content.language), - summaryList(enDummyContent, userCase, '', enDummyContent.sectionTitles.title2, content.language), + summaryList(enConsentContent, userCase, urls, '', content.language, enConsentContent.sectionTitles.title), + summaryList(enDummyContent, userCase, '', '', content.language, enDummyContent.sectionTitles.title2), summaryList( enKeepYourDetailsContent, userCase, @@ -664,10 +665,10 @@ const en = (content: CommonContent) => { content.language ), prepareRASummaryList('C7ConsolidatedReview', 'en', userCase), - summaryList(enDummyContent, userCase, '', enDummyContent.sectionTitles.title3, content.language), + summaryList(enDummyContent, userCase, '', '', content.language, enDummyContent.sectionTitles.title3), summaryList(enContentMiam, userCase, urls, enContentMiam.sectionTitles.title, content.language), PastAndCurrentProceedings(enContentProceding, userCase, content.language), - summaryList(enDummyContent, userCase, '', enDummyContent.sectionTitles.title4, content.language), + summaryList(enDummyContent, userCase, '', '', content.language, enDummyContent.sectionTitles.title4), SafetyConcerns(enSaftyConcern, userCase, content.language) ); @@ -680,10 +681,19 @@ const en = (content: CommonContent) => { } sections.push( - summaryList(enInternationalContent, userCase, urls, enInternationalContent.sectionTitles.title, content.language) + summaryList( + enInternationalContent, + userCase, + urls, + '', + content.language, + enInternationalContent.sectionTitles.title + ) ); if (userCase.aoh_wishToRespond) { - sections.push(summaryList(enResponseToAOH, userCase, urls, enResponseToAOH.sectionTitles.title, content.language)); + sections.push( + summaryList(enResponseToAOH, userCase, urls, '', content.language, enResponseToAOH.sectionTitles.title) + ); } return { ...enContent, @@ -705,11 +715,12 @@ const cy: typeof en = (content: CommonContent) => { cylegalRepresntationContent, userCase, urls, - cylegalRepresntationContent.sectionTitles.title, - content.language + '', + content.language, + cylegalRepresntationContent.sectionTitles.title ), - summaryList(cyConsentContent, userCase, urls, cyConsentContent.sectionTitles.title, content.language), - summaryList(cyDummyContent, userCase, '', cyDummyContent.sectionTitles.title2, content.language), + summaryList(cyConsentContent, userCase, urls, '', content.language, cyConsentContent.sectionTitles.title), + summaryList(cyDummyContent, userCase, '', '', content.language, cyDummyContent.sectionTitles.title2), summaryList( cyKeepYourDetailsContent, userCase, @@ -725,10 +736,10 @@ const cy: typeof en = (content: CommonContent) => { content.language ), prepareRASummaryList('C7ConsolidatedReview', 'cy', userCase), - summaryList(cyDummyContent, userCase, '', cyDummyContent.sectionTitles.title3, content.language), + summaryList(cyDummyContent, userCase, '', '', content.language, cyDummyContent.sectionTitles.title3), summaryList(cyContentMiam, userCase, urls, cyContentMiam.sectionTitles.title, content.language), PastAndCurrentProceedings(cyContentProceding, userCase, content.language), - summaryList(cyDummyContent, userCase, '', cyDummyContent.sectionTitles.title4, content.language), + summaryList(cyDummyContent, userCase, '', '', content.language, cyDummyContent.sectionTitles.title4), SafetyConcerns(cySaftyConcern, userCase, content.language) ); @@ -741,10 +752,19 @@ const cy: typeof en = (content: CommonContent) => { } sections.push( - summaryList(cyInternationalContent, userCase, urls, cyInternationalContent.sectionTitles.title, content.language) + summaryList( + cyInternationalContent, + userCase, + urls, + '', + content.language, + cyInternationalContent.sectionTitles.title + ) ); if (userCase.aoh_wishToRespond) { - sections.push(summaryList(cyResponseToAOH, userCase, urls, cyResponseToAOH.sectionTitles.title, content.language)); + sections.push( + summaryList(cyResponseToAOH, userCase, urls, '', content.language, cyResponseToAOH.sectionTitles.title) + ); } return { ...cyContent, @@ -755,12 +775,32 @@ const cy: typeof en = (content: CommonContent) => { export const form: FormContent = { fields: { + statementOfTruth: { + type: 'textAndHtml', + textAndHtml: l => `${HTML.STATEMENT_OF_TRUTH_HEADING_H2}${l.statementOfTruth} ${HTML.H2_CLOSE}`, + }, + confirm: { + type: 'textAndHtml', + textAndHtml: l => `${HTML.STATEMENT_OF_TRUTH_H3}${l.confirm} ${HTML.H3_CLOSE}`, + }, + warningText: { + type: 'warning', + label: l => `${l.warningText}`, + }, + submit: { + type: 'inset', + label: l => `

              ${l.submit}

              ${l.download}

              `, + }, + statementOfTruthSubmission: { + type: 'textAndHtml', + label: l => `${l.statementOfTruthSubmission}`, + }, declarationCheck: { type: 'checkboxes', values: [ { name: 'declarationCheck', - label: l => l.declaration, + label: l => l.believeFacts, value: 'declaration', }, ], diff --git a/src/main/steps/tasklistresponse/summary/template.njk b/src/main/steps/tasklistresponse/summary/template.njk index 622c812d1c..658c734207 100644 --- a/src/main/steps/tasklistresponse/summary/template.njk +++ b/src/main/steps/tasklistresponse/summary/template.njk @@ -1,7 +1,7 @@ {% extends "common/respondent-summary/template.njk" %} {% block page_content %} -{% if section %} - {{ section }} +{% if title %} +

              {{ title }}

              {% endif %}
              @@ -11,8 +11,8 @@
              - {% if title %} -

              {{ title }}

              + {% if subTitle %} +

              {{ subTitle }}

              {% endif %} {% endblock %} \ No newline at end of file diff --git a/src/main/steps/testing-support/delete-draft/template.njk b/src/main/steps/testing-support/delete-draft/template.njk index b898aa4108..f5e20766e6 100644 --- a/src/main/steps/testing-support/delete-draft/template.njk +++ b/src/main/steps/testing-support/delete-draft/template.njk @@ -5,10 +5,11 @@
              - +

              +

              Please enter the case references, you want to delete coma separated eg. 123456, 23456, 89687

              diff --git a/src/main/steps/urls.ts b/src/main/steps/urls.ts index 6afde96798..82d5d706d4 100644 --- a/src/main/steps/urls.ts +++ b/src/main/steps/urls.ts @@ -284,9 +284,6 @@ export const C1A_SAFETY_CONCERNS_ABDUCTION_CHILD_LOCATION: PageLink = '/:root/sa export const C1A_CHILD_ABDUCTION_THREATS: PageLink = '/:root/safety-concerns/abduction/threats'; export const C1A_SAFETY_CONCERNS_REVIEW: PageLink = '/:root/safety-concerns/review'; -/** @C100 Document Submission */ -export const C100_DOCUMENT_SUBMISSION: PageLink = `${C100_URL}/document-submission`; - /** @C100 MIAM */ export const C100_MIAM: PageLink = `${C100_URL}/miam`; export const C100_MIAM_OTHER_PROCEEDINGS: PageLink = `${C100_MIAM}/other-proceedings`; diff --git a/src/test/end-to-end/pages/C100-Rebuild/ApplicantDetails.js b/src/test/end-to-end/pages/C100-Rebuild/ApplicantDetails.js index 08567a9bdd..443fde859c 100644 --- a/src/test/end-to-end/pages/C100-Rebuild/ApplicantDetails.js +++ b/src/test/end-to-end/pages/C100-Rebuild/ApplicantDetails.js @@ -144,7 +144,7 @@ module.exports = { await this.confidentialitySummary(); await this.provideDetailsPage(); await this.relationshipToChild(); - // await this.refugeDetailsOfApplicant(); + await this.refugeDetailsOfApplicant(); await this.addressDetailsOfApplicant(); await this.addressLookUp(); await this.confirmAddress(); diff --git a/src/test/end-to-end/pages/C100-Rebuild/CaseNameAndPostCode.js b/src/test/end-to-end/pages/C100-Rebuild/CaseNameAndPostCode.js index c522a418e2..721191fc38 100644 --- a/src/test/end-to-end/pages/C100-Rebuild/CaseNameAndPostCode.js +++ b/src/test/end-to-end/pages/C100-Rebuild/CaseNameAndPostCode.js @@ -10,7 +10,6 @@ module.exports = { caseNameDetails: 'Test Case', childrenPostcodeDetails: '//*[@id="c100RebuildChildPostCode"]', childPostcode: 'SA1 8LD' - }, async gettingStarted() { await I.retry(retryCount).waitForText('Before you start your application' , 30); diff --git a/src/test/end-to-end/pages/C100-Rebuild/OtherPersonDetails.js b/src/test/end-to-end/pages/C100-Rebuild/OtherPersonDetails.js index df43a900e6..59e11dfdde 100644 --- a/src/test/end-to-end/pages/C100-Rebuild/OtherPersonDetails.js +++ b/src/test/end-to-end/pages/C100-Rebuild/OtherPersonDetails.js @@ -104,7 +104,7 @@ module.exports = { await this.otherPersonName(); await this.otherPersonDetailsInfo(); await this.otherPersonRelationship(); - // await this.refugeDetailsOfOtherPerson(); + await this.refugeDetailsOfOtherPerson(); await this.addressOfOtherPerson(); await this.addressLookUpPage(); await this.confirmAddress(); diff --git a/yarn-audit-known-issues b/yarn-audit-known-issues index b9577e41fd..8e32487cf9 100644 --- a/yarn-audit-known-issues +++ b/yarn-audit-known-issues @@ -1 +1 @@ -{"actions":[],"advisories":{},"muted":[],"metadata":{"vulnerabilities":{"info":0,"low":0,"moderate":0,"high":0,"critical":0},"dependencies":722,"devDependencies":1,"optionalDependencies":0,"totalDependencies":723}} +{"actions":[],"advisories":{},"muted":[],"metadata":{"vulnerabilities":{"info":0,"low":0,"moderate":0,"high":0,"critical":0},"dependencies":724,"devDependencies":1,"optionalDependencies":0,"totalDependencies":725}} diff --git a/yarn.lock b/yarn.lock index bc65d35472..e5c7b70ddd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,13 +15,6 @@ __metadata: languageName: node linkType: hard -"@arr/every@npm:^1.0.0": - version: 1.0.1 - resolution: "@arr/every@npm:1.0.1" - checksum: fc33cd8f3244db7053b89898fc0d1753dd17f40328a443d8640dc15578ed74c59d8e12fe8de87ddb20a2cee578dc0dd9fbb94eb77ef209158fb615bb904b684f - languageName: node - linkType: hard - "@azure/abort-controller@npm:^2.0.0": version: 2.1.2 resolution: "@azure/abort-controller@npm:2.1.2" @@ -1821,45 +1814,45 @@ __metadata: languageName: node linkType: hard -"@cucumber/cucumber-expressions@npm:17": - version: 17.1.0 - resolution: "@cucumber/cucumber-expressions@npm:17.1.0" +"@cucumber/cucumber-expressions@npm:18": + version: 18.0.1 + resolution: "@cucumber/cucumber-expressions@npm:18.0.1" dependencies: regexp-match-indices: 1.0.2 - checksum: 1dcb70330893d0bc9ae851015845437b4ba56d980728bf9ac01356ad3f82e0fcba07b152ce009a1645dab54bd346f4a2f664b3b64c4426190c4638bbf64ad2e0 + checksum: 3c0c39deebaf111194c41a62d257e1c091a11dbaf98c2f0b83a41bb5f68b73c814c5b7e8e8783ecabe073ba67c8b2e3663d106d63110e63bb781a2a499cca528 languageName: node linkType: hard -"@cucumber/gherkin@npm:26": - version: 26.2.0 - resolution: "@cucumber/gherkin@npm:26.2.0" +"@cucumber/gherkin@npm:30": + version: 30.0.4 + resolution: "@cucumber/gherkin@npm:30.0.4" dependencies: - "@cucumber/messages": ">=19.1.4 <=22" - checksum: d7bcc12fe50dd8dba6897f03ec41ae8e4a51d1582f72e55fa57137a449bd03e2ecab360ba9674fb00a17fc8482f784a45482e69e1df06f2786520e5e20e4083e + "@cucumber/messages": ">=19.1.4 <=26" + checksum: aadcbeb53a52a24a4330351ddda741563d8c4add1a4e3695238a6c1170d711a803e9bcd28aa417cc04d7bee50fc5f15efa96f1738f02e7ca414e7050f45c8fc5 languageName: node linkType: hard -"@cucumber/messages@npm:25.0.1": - version: 25.0.1 - resolution: "@cucumber/messages@npm:25.0.1" +"@cucumber/messages@npm:27.0.0": + version: 27.0.0 + resolution: "@cucumber/messages@npm:27.0.0" dependencies: - "@types/uuid": 9.0.8 + "@types/uuid": 10.0.0 class-transformer: 0.5.1 reflect-metadata: 0.2.2 - uuid: 9.0.1 - checksum: c3a428d7e30f4e479b94cd90dbe2c89ab30d5517af49f71e9268939bafe67d7c22b1fddaa858e5ed33cc9f92dad9cec8b1f677fcb46d174d8caef9d20ed13c8a + uuid: 10.0.0 + checksum: 5adc4c03952b4bf39a1f69f6b0fbcedc0317e84c1168a4d9c41091b545ee62b32c132946c3c42084be64423ba66fe3de4e9b222084f50691e5bf14fa8dd7c889 languageName: node linkType: hard -"@cucumber/messages@npm:>=19.1.4 <=22": - version: 22.0.0 - resolution: "@cucumber/messages@npm:22.0.0" +"@cucumber/messages@npm:>=19.1.4 <=26": + version: 26.0.1 + resolution: "@cucumber/messages@npm:26.0.1" dependencies: - "@types/uuid": 9.0.1 + "@types/uuid": 10.0.0 class-transformer: 0.5.1 - reflect-metadata: 0.1.13 - uuid: 9.0.0 - checksum: e9e8f3bda063ad87c23e2e5daed9e2965fb3e65c08ad5d27213d0f63d0e12574b27b2834d9360f958ad4418f7f5f22f5d78d63e45da52356ee8dfeaa3153e56c + reflect-metadata: 0.2.2 + uuid: 10.0.0 + checksum: 50b1dfff86b8898bfa9d18313674bfd00280cc8d2a9bb73d1407d672aa83eb9302ea26e9f2afdb6f901899ecbbe75e4af81eb4d0d428eaf3fcf877cb2b9f3a80 languageName: node linkType: hard @@ -1891,13 +1884,33 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0": +"@eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.4.0": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 languageName: node linkType: hard +"@eslint/config-array@npm:^0.19.0": + version: 0.19.1 + resolution: "@eslint/config-array@npm:0.19.1" + dependencies: + "@eslint/object-schema": ^2.1.5 + debug: ^4.3.1 + minimatch: ^3.1.2 + checksum: 421aad712a5ef1a3d118b5e0857f79c080f9dd619a76ce19d20105d381521583786f7abb1195744af9e62a5124e6657066eb6780e920f4001846bd91c1a665f0 + languageName: node + linkType: hard + +"@eslint/core@npm:^0.9.0": + version: 0.9.1 + resolution: "@eslint/core@npm:0.9.1" + dependencies: + "@types/json-schema": ^7.0.15 + checksum: 33c8159842cc3a646caa267c008cb567ca60e0220bcdcf6e426128409953b8f6a9b142246db616c71d06331edf769c192d7e2792b3f19c2a6b8179e491512d89 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^0.4.3": version: 0.4.3 resolution: "@eslint/eslintrc@npm:0.4.3" @@ -1915,10 +1928,43 @@ __metadata: languageName: node linkType: hard -"@exodus/schemasafe@npm:^1.3.0": - version: 1.3.0 - resolution: "@exodus/schemasafe@npm:1.3.0" - checksum: 5fa00ce28d142dc39e07d8080e7967e77125bfdf59af31975b7e6395ca5265e2a8540ab7d8cc89abf8c0a483560f8dbb2994761115c995d2c473ab4b6ec74dba +"@eslint/eslintrc@npm:^3.2.0": + version: 3.2.0 + resolution: "@eslint/eslintrc@npm:3.2.0" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^10.0.1 + globals: ^14.0.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: c898e4d12f4c9a79a61ee3c91e38eea5627a04e021cb749191e8537445858bfe32f810eca0cb2dc9902b8ad8b65ca07ef7221dc4bad52afe60cbbf50ec56c236 + languageName: node + linkType: hard + +"@eslint/js@npm:9.17.0": + version: 9.17.0 + resolution: "@eslint/js@npm:9.17.0" + checksum: b68a14ff518ffa12e3b85fa9c72b818faeff092285acfbf02da2d0fb12a681b76651638881e98845f2df2ed346ed0d33faeb1d9caac163daf232c223b7efe89c + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.5": + version: 2.1.5 + resolution: "@eslint/object-schema@npm:2.1.5" + checksum: 5facffc832bae93c510f4d38f0f1cbfebd3d7ec772ece6b801bd09bf2dce52e781f4dea500aa133d02257e04ed6a3958fa18cbaed1f9623974a804ee60a8ca54 + languageName: node + linkType: hard + +"@eslint/plugin-kit@npm:^0.2.3": + version: 0.2.4 + resolution: "@eslint/plugin-kit@npm:0.2.4" + dependencies: + levn: ^0.4.1 + checksum: 5693465dca5fc6f27b090f987b51bc738f48c6a6b5678dcc1791522921834206388b462578edd362d458e8de6dcd21cce1a2e8cff47d1512411ba0389112c231 languageName: node linkType: hard @@ -2006,6 +2052,23 @@ __metadata: languageName: node linkType: hard +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 611e0545146f55ddfdd5c20239cfb7911f9d0e28258787c4fc1a1f6214250830c9367aaaeace0096ed90b6739bee1e9c52ad5ba8adaf74ab8b449119303babfe + languageName: node + linkType: hard + +"@humanfs/node@npm:^0.16.6": + version: 0.16.6 + resolution: "@humanfs/node@npm:0.16.6" + dependencies: + "@humanfs/core": ^0.19.1 + "@humanwhocodes/retry": ^0.3.0 + checksum: f9cb52bb235f8b9c6fcff43a7e500669a38f8d6ce26593404a9b56365a1644e0ed60c720dc65ff6a696b1f85f3563ab055bb554ec8674f2559085ba840e47710 + languageName: node + linkType: hard + "@humanwhocodes/config-array@npm:^0.5.0": version: 0.5.0 resolution: "@humanwhocodes/config-array@npm:0.5.0" @@ -2017,6 +2080,13 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + languageName: node + linkType: hard + "@humanwhocodes/object-schema@npm:^1.2.0": version: 1.2.1 resolution: "@humanwhocodes/object-schema@npm:1.2.1" @@ -2024,6 +2094,20 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.1 + resolution: "@humanwhocodes/retry@npm:0.3.1" + checksum: 7e5517bb51dbea3e02ab6cacef59a8f4b0ca023fc4b0b8cbc40de0ad29f46edd50b897c6e7fba79366a0217e3f48e2da8975056f6c35cfe19d9cc48f1d03c1dd + languageName: node + linkType: hard + +"@humanwhocodes/retry@npm:^0.4.1": + version: 0.4.1 + resolution: "@humanwhocodes/retry@npm:0.4.1" + checksum: f11167c28e8266faba470fd273cbaafe2827523492bc18c5623015adb7ed66f46b2e542e3d756fed9ca614300249267814220c2f5f03a59e07fdfa64fc14ad52 + languageName: node + linkType: hard + "@ioredis/commands@npm:^1.1.1": version: 1.2.0 resolution: "@ioredis/commands@npm:1.2.0" @@ -2380,13 +2464,13 @@ __metadata: linkType: hard "@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" dependencies: "@jridgewell/set-array": ^1.2.1 "@jridgewell/sourcemap-codec": ^1.4.10 "@jridgewell/trace-mapping": ^0.3.24 - checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 + checksum: c0687b5227461717aa537fe71a42e356bcd1c43293b3353796a148bf3b0d6f59109def46c22f05b60e29a46f19b2e4676d027959a7c53a6c92b9d5b0d87d0420 languageName: node linkType: hard @@ -2414,7 +2498,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec @@ -2431,7 +2515,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -2560,14 +2644,14 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/core@npm:1.29.0, @opentelemetry/core@npm:^1.19.0, @opentelemetry/core@npm:^1.26.0": - version: 1.29.0 - resolution: "@opentelemetry/core@npm:1.29.0" +"@opentelemetry/core@npm:1.30.0, @opentelemetry/core@npm:^1.19.0, @opentelemetry/core@npm:^1.26.0": + version: 1.30.0 + resolution: "@opentelemetry/core@npm:1.30.0" dependencies: "@opentelemetry/semantic-conventions": 1.28.0 peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: bf025473175ceee9a64c6d31f01f7d9924b54ebcb603b38dae56d2ef664acb5fe43f393ae9b0aff41deb3a80b7222b74b9fd2764712db30ee2547280aecff509 + checksum: 7c29a860f25e13922a9922437155399bfa4ed2f3ed88e6d7e643994b16b919c9462fdb0bb7e599ba6b78e615158ace1a0dbfcf0e60cefab645c25ec8a4b6aa31 languageName: node linkType: hard @@ -2587,28 +2671,28 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/resources@npm:1.29.0": - version: 1.29.0 - resolution: "@opentelemetry/resources@npm:1.29.0" +"@opentelemetry/resources@npm:1.30.0": + version: 1.30.0 + resolution: "@opentelemetry/resources@npm:1.30.0" dependencies: - "@opentelemetry/core": 1.29.0 + "@opentelemetry/core": 1.30.0 "@opentelemetry/semantic-conventions": 1.28.0 peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: dfa68245089fe4eb8983503539e2109753fd232d769f8bba675c3277ababde88b4e7d60af7ed34a7529a021af0f0df457e3782563597a58ba0599f0161b502b2 + checksum: 887b59053680f528c94c16d38d45208cad306fbd687dd66d655566573821ad77b9d8bfa9a409cfd59a1975cccc417dc3303f51f97499247d1a4ea2f987e6c594 languageName: node linkType: hard "@opentelemetry/sdk-trace-base@npm:^1.19.0": - version: 1.29.0 - resolution: "@opentelemetry/sdk-trace-base@npm:1.29.0" + version: 1.30.0 + resolution: "@opentelemetry/sdk-trace-base@npm:1.30.0" dependencies: - "@opentelemetry/core": 1.29.0 - "@opentelemetry/resources": 1.29.0 + "@opentelemetry/core": 1.30.0 + "@opentelemetry/resources": 1.30.0 "@opentelemetry/semantic-conventions": 1.28.0 peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 750aa58f5323bda8391213d5bdabadbf2dfb28462198b87f7f41586fa7825cccfd04bdb1c199d3fd368f9837ba7d5f890cae1f7f5d29ec2aeb9e2b7f6a88ba37 + checksum: 901e1afca9a1b8e042e0451bb2f31b00cc1a3e6408aa0f8432e022cf52293ee92bff5cb26f0e78fe435940c3e957862c4a9d3e95d223c2c52134dd0049beaaa1 languageName: node linkType: hard @@ -2772,13 +2856,6 @@ __metadata: languageName: node linkType: hard -"@polka/url@npm:^0.5.0": - version: 0.5.0 - resolution: "@polka/url@npm:0.5.0" - checksum: 3f007adf9c271b28992ebff1df6424e75e7d579493c66969356a9b5dada18480583744dbc28a7467371fa10eb794a5e1dc1f3fcd359c0b5685f4f9c6592cd312 - languageName: node - linkType: hard - "@promptbook/utils@npm:0.69.5": version: 0.69.5 resolution: "@promptbook/utils@npm:0.69.5" @@ -3614,14 +3691,14 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^5.0.0": - version: 5.0.2 - resolution: "@types/express-serve-static-core@npm:5.0.2" + version: 5.0.4 + resolution: "@types/express-serve-static-core@npm:5.0.4" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" "@types/send": "*" - checksum: 841229b63801b334729e56ec04b5023e084e2962d61dddc95b3508e2fc821e8550bd69c074b6cb0a1c57147eb324c4dc543103d0827e34077f7eb6d230d08a8f + checksum: fb094756f4b0c88ae367c385e1857081d39f33cc38ba90d198a758528ffa0889485397871550eb9af986e4ccb0256c7304a771757c8775907506bd9f667d1d66 languageName: node linkType: hard @@ -3765,7 +3842,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -3789,9 +3866,9 @@ __metadata: linkType: hard "@types/lodash@npm:^4.14.186": - version: 4.17.13 - resolution: "@types/lodash@npm:4.17.13" - checksum: d0bf8fbd950be71946e0076b30fd40d492293baea75f05931b6b5b906fd62583708c6229abdb95b30205ad24ce1ed2f48bc9d419364f682320edd03405cc0c7e + version: 4.17.14 + resolution: "@types/lodash@npm:4.17.14" + checksum: 2dbeaff92b31cb523f6bc4bb99a3d8c88fbb001d54f2367a888add85784fb213744a9b1600e1e98b6790ab191fdb6ec839eb0e3d63fcf6fb6cf1ebe4c3d21149 languageName: node linkType: hard @@ -3858,29 +3935,20 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:^22.2.0": - version: 22.10.1 - resolution: "@types/node@npm:22.10.1" + version: 22.10.5 + resolution: "@types/node@npm:22.10.5" dependencies: undici-types: ~6.20.0 - checksum: 5a9b81500f288a8fb757b61bd939f99f72b6cb59347a5bae52dd1c2c87100ebbaa9da4256ef3cb9add2090e8704cda1d9a1ffc14ccd5db47a6466c8bae10ebcb + checksum: 3b0e966df4e130edac3ad034f1cddbe134e70f11556062468c9fbd749a3b07a44445a3a75a7eec68a104930bf05d4899f1a418c4ae48493d2c8c1544d8594bcc languageName: node linkType: hard "@types/node@npm:^18.0.0, @types/node@npm:^18.6.1": - version: 18.19.67 - resolution: "@types/node@npm:18.19.67" + version: 18.19.70 + resolution: "@types/node@npm:18.19.70" dependencies: undici-types: ~5.26.4 - checksum: 700f92c6a0b63352ce6327286392adab30bb17623c2a788811e9cf092c4dc2fb5e36ca4727247a981b3f44185fdceef20950a3b7a8ab72721e514ac037022a08 - languageName: node - linkType: hard - -"@types/node@npm:^20.1.0": - version: 20.17.9 - resolution: "@types/node@npm:20.17.9" - dependencies: - undici-types: ~6.19.2 - checksum: 2fc67ba937d2c4e7a52f0ccf71b8b4c616dcfa1ad6cd5a726582fd3cbf4f409c2eb44595592580f782c2ade05f8130df072dd04ac064fe150cfcd7849e643500 + checksum: 6ce382b659a03fb694b8af4bbf3a397c0f8b6448ab4c0f17fc58de8fe649c474146b88c0317ab0ccb50ce9e251464498b0aa43227f1626d4f65bd196cbae6764 languageName: node linkType: hard @@ -4087,17 +4155,10 @@ __metadata: languageName: node linkType: hard -"@types/uuid@npm:9.0.1": - version: 9.0.1 - resolution: "@types/uuid@npm:9.0.1" - checksum: c472b8a77cbeded4bc529220b8611afa39bd64677f507838f8083d8aac8033b1f88cb9ddaa2f8589e0dcd2317291d0f6e1379f82d5ceebd6f74f3b4825288e00 - languageName: node - linkType: hard - -"@types/uuid@npm:9.0.8": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 +"@types/uuid@npm:10.0.0": + version: 10.0.0 + resolution: "@types/uuid@npm:10.0.0" + checksum: e3958f8b0fe551c86c14431f5940c3470127293280830684154b91dc7eb3514aeb79fe3216968833cf79d4d1c67f580f054b5be2cd562bebf4f728913e73e944 languageName: node linkType: hard @@ -4396,47 +4457,32 @@ __metadata: languageName: node linkType: hard -"@wdio/config@npm:7.33.0": - version: 7.33.0 - resolution: "@wdio/config@npm:7.33.0" +"@wdio/config@npm:7.40.0": + version: 7.40.0 + resolution: "@wdio/config@npm:7.40.0" dependencies: "@types/glob": ^8.1.0 "@wdio/logger": 7.26.0 - "@wdio/types": 7.33.0 - "@wdio/utils": 7.33.0 + "@wdio/types": 7.40.0 + "@wdio/utils": 7.40.0 deepmerge: ^4.0.0 glob: ^8.0.3 - checksum: 458a84543dc813549320454df833e569b252996dc6e9fcf1d063e110e53d849e8e3b18239f1caadbe3b5ae1800cbbc07c72325dfda0768684deea7c8bbdae28f - languageName: node - linkType: hard - -"@wdio/config@npm:8.40.2": - version: 8.40.2 - resolution: "@wdio/config@npm:8.40.2" - dependencies: - "@wdio/logger": 8.38.0 - "@wdio/types": 8.39.0 - "@wdio/utils": 8.40.2 - decamelize: ^6.0.0 - deepmerge-ts: ^5.0.0 - glob: ^10.2.2 - import-meta-resolve: ^4.0.0 - checksum: 191e3c9b9cda804ad03979e807a4994d7b08dabfb9463ef3519c2b25a7c9bb24c9d753fb41895e7acfdc5d2c71e5d6d7dd1161847abda7a825dcca10c3705ce7 + checksum: f42c7a997b79400b127f2adcaf3edc779b4285f31c579b09cae60bf9e5f52e4075d240a6ae22031f775942f2e191461d2d735f637492b0da0516a97f543be50c languageName: node linkType: hard -"@wdio/config@npm:8.40.6": - version: 8.40.6 - resolution: "@wdio/config@npm:8.40.6" +"@wdio/config@npm:8.41.0": + version: 8.41.0 + resolution: "@wdio/config@npm:8.41.0" dependencies: "@wdio/logger": 8.38.0 - "@wdio/types": 8.40.6 - "@wdio/utils": 8.40.6 + "@wdio/types": 8.41.0 + "@wdio/utils": 8.41.0 decamelize: ^6.0.0 deepmerge-ts: ^5.0.0 glob: ^10.2.2 import-meta-resolve: ^4.0.0 - checksum: 8ee3baaff86bb641b235c720adaf21c1d5d19bbb4f42baf1e712966ee6ea7fb1480e2c68d7a8e56e28a9701e8eb25a19a2ccce15ab4efe3b8df5bad5d811477c + checksum: 8d03080461a378a185e9bc3da9c1dd363f1c4374f03356de1c2fb9143ebb0d89d5b4c748a1e46ed20b125672932abc472ff0cef02ede97af0fab5659527c0287 languageName: node linkType: hard @@ -4452,7 +4498,7 @@ __metadata: languageName: node linkType: hard -"@wdio/logger@npm:8.38.0, @wdio/logger@npm:^8.38.0": +"@wdio/logger@npm:8.38.0, @wdio/logger@npm:^8.11.0, @wdio/logger@npm:^8.38.0": version: 8.38.0 resolution: "@wdio/logger@npm:8.38.0" dependencies: @@ -4464,18 +4510,6 @@ __metadata: languageName: node linkType: hard -"@wdio/logger@npm:^9.0.0": - version: 9.1.3 - resolution: "@wdio/logger@npm:9.1.3" - dependencies: - chalk: ^5.1.2 - loglevel: ^1.6.0 - loglevel-plugin-prefix: ^0.8.4 - strip-ansi: ^7.1.0 - checksum: 8e2ff0335b137edcb33196050b8382c34fc77082136cb19572918dfb3189273b5174db0068ba1b9bd2497b39e7989f25c80695985eac1f1d2d81c1eaae9126e7 - languageName: node - linkType: hard - "@wdio/protocols@npm:7.27.0": version: 7.27.0 resolution: "@wdio/protocols@npm:7.27.0" @@ -4483,13 +4517,6 @@ __metadata: languageName: node linkType: hard -"@wdio/protocols@npm:8.38.0": - version: 8.38.0 - resolution: "@wdio/protocols@npm:8.38.0" - checksum: 990e41ec4173914da98575aa59ea15a101f3897155d45a74dc4e25caafdac58f3525867a2549d0ced5b2ed70354bca59a024007453e67134dcc1ca899f38e453 - languageName: node - linkType: hard - "@wdio/protocols@npm:8.40.3": version: 8.40.3 resolution: "@wdio/protocols@npm:8.40.3" @@ -4497,12 +4524,12 @@ __metadata: languageName: node linkType: hard -"@wdio/repl@npm:7.33.0": - version: 7.33.0 - resolution: "@wdio/repl@npm:7.33.0" +"@wdio/repl@npm:7.40.0": + version: 7.40.0 + resolution: "@wdio/repl@npm:7.40.0" dependencies: - "@wdio/utils": 7.33.0 - checksum: 39039e0493a27edcf6bded9495929427a6688a80157978c2af96dc30fc171e7d0b03c5dee430704664d124abd437c48a0386f387acce76444f6fb7d26141ce56 + "@wdio/utils": 7.40.0 + checksum: c0efb95037986d30e9b71456ce0f9b2dfd854e10c2fe807b4a07b55627191e5909e943048badea0eb68f29a4f364efeacd2775cdd28b288d9f70edd872f0ef1a languageName: node linkType: hard @@ -4516,22 +4543,22 @@ __metadata: linkType: hard "@wdio/sauce-service@npm:^8.39.0": - version: 8.40.6 - resolution: "@wdio/sauce-service@npm:8.40.6" + version: 8.41.0 + resolution: "@wdio/sauce-service@npm:8.41.0" dependencies: "@wdio/logger": 8.38.0 - "@wdio/types": 8.40.6 - "@wdio/utils": 8.40.6 + "@wdio/types": 8.41.0 + "@wdio/utils": 8.41.0 address: ^2.0.3 saucelabs: 8.0.0 - webdriverio: 8.40.6 - checksum: 9b9b268e3435e97a320c7ccbc76d54726a152df4362a0d314902ba58bc2e84396159a0bbac7c1131685af87d15302e8c1fd0fc6a3ef5267c6d18ade144d66d05 + webdriverio: 8.41.0 + checksum: 9081b5b7f1edbb72b7655ab9be69b87834c4f7044d3d228785b95b4ddb4667b753cbec0cbf4209242bba117649eabda73d68aa25d569aa4e171bbdea1921620d languageName: node linkType: hard -"@wdio/types@npm:7.33.0": - version: 7.33.0 - resolution: "@wdio/types@npm:7.33.0" +"@wdio/types@npm:7.40.0": + version: 7.40.0 + resolution: "@wdio/types@npm:7.40.0" dependencies: "@types/node": ^18.0.0 got: ^11.8.1 @@ -4540,78 +4567,48 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 6fdc6272bbee48a6ac1aa6db2f50fd24103d252d09bee45650ec96d235a1e59d13f5a002ada3b1b52928d3fc25f7876e4c3b7e7c9bddcca4cd281bad52d5a1ec - languageName: node - linkType: hard - -"@wdio/types@npm:8.39.0": - version: 8.39.0 - resolution: "@wdio/types@npm:8.39.0" - dependencies: - "@types/node": ^20.1.0 - checksum: 2245b510deaafb9d9a4cf2d2c5970add729258bfe9395860fd2144bad5aff7d22bd0c045a83c4e2d01ddf293889d052fe98f7c7cb485d6a5d1584f7c284704d8 + checksum: 5c8e582a25a8123f9fdc8bd22eb1e4f12e7e82afa491ead92c8315b63658623064094a0aac76e5526c54033f16cfbb8d4e9421766c8a2286be6f917e07709e79 languageName: node linkType: hard -"@wdio/types@npm:8.40.6": - version: 8.40.6 - resolution: "@wdio/types@npm:8.40.6" +"@wdio/types@npm:8.41.0": + version: 8.41.0 + resolution: "@wdio/types@npm:8.41.0" dependencies: "@types/node": ^22.2.0 - checksum: fca998cfe441aeea70fd0ed1e38512e9f07802250ba39ce03424fbefba074016aa6cf18ad4c4c3f36394f6338a60a2faa9404cfa9c14faebd780e1dc59356260 + checksum: c8763f4cc32b8eb47ba02179b42511bb0ef5e8f7962f818ca3ab60e0c8237ecbefc09effb33eac71c91de2ddd3b130467a7c53c4d8dca35be1280c553e431103 languageName: node linkType: hard -"@wdio/utils@npm:7.33.0": - version: 7.33.0 - resolution: "@wdio/utils@npm:7.33.0" +"@wdio/utils@npm:7.40.0": + version: 7.40.0 + resolution: "@wdio/utils@npm:7.40.0" dependencies: "@wdio/logger": 7.26.0 - "@wdio/types": 7.33.0 + "@wdio/types": 7.40.0 p-iteration: ^1.1.8 - checksum: 3b81a41429dbd0273da7860975ab7a72922d3f3c60994a8f9b09c78c306381d6221ceba1d973666343e536018fcd6afe04ddbadb3d9f010e1605037335d0430d + checksum: 77f7fa3c8e4e6af45785aa5a37ae58eb506bc2764d078025a3244482debe29d3bfa30c24e469262443d718a88929093beb204cd9871192aac82ff50e069f8116 languageName: node linkType: hard -"@wdio/utils@npm:8.40.2": - version: 8.40.2 - resolution: "@wdio/utils@npm:8.40.2" +"@wdio/utils@npm:8.41.0": + version: 8.41.0 + resolution: "@wdio/utils@npm:8.41.0" dependencies: "@puppeteer/browsers": ^1.6.0 "@wdio/logger": 8.38.0 - "@wdio/types": 8.39.0 + "@wdio/types": 8.41.0 decamelize: ^6.0.0 deepmerge-ts: ^5.1.0 edgedriver: ^5.5.0 - geckodriver: ^4.3.1 + geckodriver: ~4.2.0 get-port: ^7.0.0 import-meta-resolve: ^4.0.0 locate-app: ^2.1.0 safaridriver: ^0.1.0 split2: ^4.2.0 wait-port: ^1.0.4 - checksum: d592d482d40822b81d3bc92286dd406e5cf74b1e7e2b0f96efc92e82f39f6952f0131b57059c5fa4479aa2161aaa09ca6e1dc6fded0a3029495ef36c79e0f9ce - languageName: node - linkType: hard - -"@wdio/utils@npm:8.40.6": - version: 8.40.6 - resolution: "@wdio/utils@npm:8.40.6" - dependencies: - "@puppeteer/browsers": ^1.6.0 - "@wdio/logger": 8.38.0 - "@wdio/types": 8.40.6 - decamelize: ^6.0.0 - deepmerge-ts: ^5.1.0 - edgedriver: ^5.5.0 - geckodriver: ^4.3.1 - get-port: ^7.0.0 - import-meta-resolve: ^4.0.0 - locate-app: ^2.1.0 - safaridriver: ^0.1.0 - split2: ^4.2.0 - wait-port: ^1.0.4 - checksum: 549f54c25310270b29772444b060c2392ccaeafd7d0903c87cc6f25e41e8e252c603b19063f9e4d5947817b94ac2b135da1d175de75a06b6e76478fb30d1344c + checksum: 6559d6907bf3ae5fa997d1fc45e6a2e062d223038909f5a83223568c8ea1898613ee2c7bf07fb9c865807e0750cdfa9570de3e8421d757bd724cba5159634e7e languageName: node linkType: hard @@ -4799,10 +4796,10 @@ __metadata: languageName: node linkType: hard -"@xmldom/xmldom@npm:0.8.10": - version: 0.8.10 - resolution: "@xmldom/xmldom@npm:0.8.10" - checksum: 4c136aec31fb3b49aaa53b6fcbfe524d02a1dc0d8e17ee35bd3bf35e9ce1344560481cd1efd086ad1a4821541482528672306d5e37cdbd187f33d7fadd3e2cf0 +"@xmldom/xmldom@npm:0.9.5": + version: 0.9.5 + resolution: "@xmldom/xmldom@npm:0.9.5" + checksum: 226501c238fdf0137c3c9c9c7372cdbd78f30a6c8cf95351a823a1eff5eff58ca3fe46ec9a2027f2889cad2d45cebe31bf83e907e990c1b9a7dd177f520eeed3 languageName: node linkType: hard @@ -4893,7 +4890,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.3.1": +"acorn-jsx@npm:^5.3.1, acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -4911,7 +4908,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.3.3": +"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.3.4": version: 8.3.4 resolution: "acorn-walk@npm:8.3.4" dependencies: @@ -4920,12 +4917,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:8.12.1": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" +"acorn@npm:8.14.0, acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" bin: acorn: bin/acorn - checksum: 677880034aee5bdf7434cc2d25b641d7bedb0b5ef47868a78dadabedccf58e1c5457526d9d8249cd253f2df087e081c3fe7d903b448d8e19e5131a3065b83c07 + checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4 languageName: node linkType: hard @@ -4938,15 +4935,6 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.12.1, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2": - version: 8.14.0 - resolution: "acorn@npm:8.14.0" - bin: - acorn: bin/acorn - checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4 - languageName: node - linkType: hard - "address@npm:^2.0.3": version: 2.0.3 resolution: "address@npm:2.0.3" @@ -4963,21 +4951,19 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: ^4.3.4 - checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 87bb7ee54f5ecf0ccbfcba0b07473885c43ecd76cb29a8db17d6137a19d9f9cd443a2a7c5fd8a3f24d58ad8145f9eb49116344a66b107e1aeab82cf2383f4753 languageName: node linkType: hard "agentkeepalive@npm:^4.1.3, agentkeepalive@npm:^4.2.1": - version: 4.5.0 - resolution: "agentkeepalive@npm:4.5.0" + version: 4.6.0 + resolution: "agentkeepalive@npm:4.6.0" dependencies: humanize-ms: ^1.2.1 - checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 + checksum: b3cdd10efca04876defda3c7671163523fcbce20e8ef7a8f9f30919a242e32b846791c0f1a8a0269718a585805a2cdcd031779ff7b9927a1a8dd8586f8c2e8c5 languageName: node linkType: hard @@ -5390,13 +5376,13 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" +"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" dependencies: - call-bind: ^1.0.5 - is-array-buffer: ^3.0.4 - checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + call-bound: ^1.0.3 + is-array-buffer: ^3.0.5 + checksum: 0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 languageName: node linkType: hard @@ -5450,42 +5436,41 @@ __metadata: linkType: hard "array.prototype.flat@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 5d5a7829ab2bb271a8d30a1c91e6271cef0ec534593c0fe6d2fb9ebf8bb62c1e5326e2fddcbbcbbe5872ca04f5e6b54a1ecf092e0af704fb538da9b2bfd95b40 languageName: node linkType: hard "array.prototype.flatmap@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flatmap@npm:1.3.2" + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 11b4de09b1cf008be6031bb507d997ad6f1892e57dc9153583de6ebca0f74ea403fffe0f203461d359de05048d609f3f480d9b46fed4099652d8b62cc972f284 languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" dependencies: array-buffer-byte-length: ^1.0.1 - call-bind: ^1.0.5 + call-bind: ^1.0.8 define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.2.1 - get-intrinsic: ^1.2.3 + es-abstract: ^1.23.5 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 is-array-buffer: ^3.0.4 - is-shared-array-buffer: ^1.0.2 - checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e + checksum: b1d1fd20be4e972a3779b1569226f6740170dca10f07aa4421d42cefeec61391e79c557cda8e771f5baefe47d878178cd4438f60916ce831813c08132bced765 languageName: node linkType: hard @@ -5880,9 +5865,9 @@ __metadata: linkType: hard "bare-events@npm:^2.0.0, bare-events@npm:^2.2.0": - version: 2.5.0 - resolution: "bare-events@npm:2.5.0" - checksum: 5aa10716e7f33c5dfc471fd657eee2a33f2db0f78b3c83b5cdd1a45a7e7871114a69460ea96cd838807c55eb470b9e53dd0dfda8c83cced1352cc8253cebff48 + version: 2.5.3 + resolution: "bare-events@npm:2.5.3" + checksum: b8c97f7af5639c66b647dc1340109eaa2f846b34e9a9445fb8b8afe4f333374988654c686a4cff1a397927c961de7461922e81291ef957fd54a4f743080aea10 languageName: node linkType: hard @@ -5914,11 +5899,11 @@ __metadata: linkType: hard "bare-stream@npm:^2.0.0": - version: 2.4.2 - resolution: "bare-stream@npm:2.4.2" + version: 2.6.1 + resolution: "bare-stream@npm:2.6.1" dependencies: - streamx: ^2.20.0 - checksum: 1f9493b8c122dc7fbd2b772f826d000c245123e9824a1ae4f054d86cdc8bb794b7ecbb53e9675f7a6b5cb3bac1459f0004e5403f959bd0b3d44987c1b8ddd33e + streamx: ^2.21.0 + checksum: e7343a9ad6d3ca0d345c8b7dad449fbeccec1969d6c0971cd8f79e55508435dbba26e386a8f75e4baa94d9abd9d767972ab9917f59c64b1df06e0b30b5b814fd languageName: node linkType: hard @@ -6173,17 +6158,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.24.0, browserslist@npm:^4.24.2": - version: 4.24.2 - resolution: "browserslist@npm:4.24.2" +"browserslist@npm:^4.24.0, browserslist@npm:^4.24.3": + version: 4.24.4 + resolution: "browserslist@npm:4.24.4" dependencies: - caniuse-lite: ^1.0.30001669 - electron-to-chromium: ^1.5.41 - node-releases: ^2.0.18 + caniuse-lite: ^1.0.30001688 + electron-to-chromium: ^1.5.73 + node-releases: ^2.0.19 update-browserslist-db: ^1.1.1 bin: browserslist: cli.js - checksum: cf64085f12132d38638f38937a255edb82c7551b164a98577b055dd79719187a816112f7b97b9739e400c4954cd66479c0d7a843cb816e346f4795dc24fd5d97 + checksum: 64074bf6cf0a9ae3094d753270e3eae9cf925149db45d646f0bc67bacc2e46d7ded64a4e835b95f5fdcf0350f63a83c3755b32f80831f643a47f0886deb8a065 languageName: node linkType: hard @@ -6507,17 +6492,17 @@ __metadata: languageName: node linkType: hard -"call-bind-apply-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "call-bind-apply-helpers@npm:1.0.0" +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1": + version: 1.0.1 + resolution: "call-bind-apply-helpers@npm:1.0.1" dependencies: es-errors: ^1.3.0 function-bind: ^1.1.2 - checksum: 99b8043d52587547aea8d51ee2ed32190b32f52095f3f91c6e655110f7e1bf3bda7d389ce5032f73d66c8ff7d449bb67114e7aba6d9df8ab67c29926b3f71922 + checksum: 3c55343261bb387c58a4762d15ad9d42053659a62681ec5eb50690c6b52a4a666302a01d557133ce6533e8bd04530ee3b209f23dd06c9577a1925556f8fcccdf languageName: node linkType: hard -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": +"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": version: 1.0.8 resolution: "call-bind@npm:1.0.8" dependencies: @@ -6529,6 +6514,16 @@ __metadata: languageName: node linkType: hard +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3": + version: 1.0.3 + resolution: "call-bound@npm:1.0.3" + dependencies: + call-bind-apply-helpers: ^1.0.1 + get-intrinsic: ^1.2.6 + checksum: a93bbe0f2d0a2d6c144a4349ccd0593d5d0d5d9309b69101710644af8964286420062f2cc3114dca120b9bc8cc07507952d4b1b3ea7672e0d7f6f1675efedb32 + languageName: node + linkType: hard + "caller-callsite@npm:^2.0.0": version: 2.0.0 resolution: "caller-callsite@npm:2.0.0" @@ -6603,10 +6598,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001669": - version: 1.0.30001687 - resolution: "caniuse-lite@npm:1.0.30001687" - checksum: 20fea782da99d7ff964a9f0573c9eb02762eee2783522f5db5c0a20ba9d9d1cf294aae4162b5ef2f47f729916e6bd0ba457118c6d086c1132d19a46d2d1c61e7 +"caniuse-lite@npm:^1.0.30001688": + version: 1.0.30001690 + resolution: "caniuse-lite@npm:1.0.30001690" + checksum: f2c1b595f15d8de4d9ccd155d61ac9f00ac62f1515870505a0186266fd52aef169fcddc90d8a4814e52b77107244806466fadc2c216662f23f1022a430e735ee languageName: node linkType: hard @@ -6621,15 +6616,6 @@ __metadata: languageName: node linkType: hard -"centra@npm:^2.7.0": - version: 2.7.0 - resolution: "centra@npm:2.7.0" - dependencies: - follow-redirects: ^1.15.6 - checksum: 59ec76d9ba7086b76e9594129b9843856fe7293400b89cb8b133f444a62ca5d4c536df0d4722374b0c16d86dd4e0baba1fc9722640b7d3b532865bebdec2b1a2 - languageName: node - linkType: hard - "chai-as-promised@npm:^7.1.1": version: 7.1.2 resolution: "chai-as-promised@npm:7.1.2" @@ -6750,7 +6736,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2, chalk@npm:~4.1.0": +"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2, chalk@npm:~4.1.0, chalk@npm:~4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -6761,9 +6747,9 @@ __metadata: linkType: hard "chalk@npm:^5.1.2": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + version: 5.4.1 + resolution: "chalk@npm:5.4.1" + checksum: 0c656f30b782fed4d99198825c0860158901f449a6b12b818b0aabad27ec970389e7e8767d0e00762175b23620c812e70c4fd92c0210e55fc2d993638b74e86e languageName: node linkType: hard @@ -6932,20 +6918,6 @@ __metadata: languageName: node linkType: hard -"chrome-launcher@npm:^1.0.0": - version: 1.1.2 - resolution: "chrome-launcher@npm:1.1.2" - dependencies: - "@types/node": "*" - escape-string-regexp: ^4.0.0 - is-wsl: ^2.2.0 - lighthouse-logger: ^2.0.1 - bin: - print-chrome-path: bin/print-chrome-path.js - checksum: 003d05aae2e444bd52d71834a1a8ca096d08341be2e28b0b6e9bc4fbb3be5a5bae85e0a9b26e7ceab9f08eefc6b1ba787968b188b44ab64b0fe79f49742e7c45 - languageName: node - linkType: hard - "chrome-trace-event@npm:^1.0.2": version: 1.0.4 resolution: "chrome-trace-event@npm:1.0.4" @@ -7202,17 +7174,17 @@ __metadata: linkType: hard "codeceptjs@npm:^3.3.7": - version: 3.6.7 - resolution: "codeceptjs@npm:3.6.7" + version: 3.6.10 + resolution: "codeceptjs@npm:3.6.10" dependencies: "@codeceptjs/configure": 1.0.1 "@codeceptjs/detox-helper": 1.1.2 "@codeceptjs/helper": 2.0.4 - "@cucumber/cucumber-expressions": 17 - "@cucumber/gherkin": 26 - "@cucumber/messages": 25.0.1 - "@xmldom/xmldom": 0.8.10 - acorn: 8.12.1 + "@cucumber/cucumber-expressions": 18 + "@cucumber/gherkin": 30 + "@cucumber/messages": 27.0.0 + "@xmldom/xmldom": 0.9.5 + acorn: 8.14.0 arrify: 2.0.1 axios: 1.7.7 chai: 5.1.1 @@ -7224,10 +7196,9 @@ __metadata: chai-string: 1.5.0 chalk: 4.1.2 commander: 11.1.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 css-to-xpath: 0.1.0 csstoxpath: 1.6.0 - devtools: 8.40.2 envinfo: 7.14.0 escape-string-regexp: 4.0.0 figures: 3.2.0 @@ -7236,28 +7207,28 @@ __metadata: glob: 6.0.1 html-minifier-terser: 7.2.0 inquirer: 6.5.2 + invisi-data: ^1.0.0 joi: 17.13.3 js-beautify: 1.15.1 lodash.clonedeep: 4.5.0 lodash.merge: 4.6.2 mkdirp: 1.0.4 - mocha: 10.7.3 - monocart-coverage-reports: 2.10.3 + mocha: 10.8.2 + monocart-coverage-reports: 2.11.3 ms: 2.1.3 ora-classic: 5.4.2 - pactum: 3.7.1 parse-function: 5.6.10 - parse5: 7.1.2 + parse5: 7.2.1 promise-retry: 1.1.1 resq: 1.11.0 sprintf-js: 1.1.1 - uuid: 10.0 + uuid: 11.0 dependenciesMeta: "@codeceptjs/detox-helper": optional: true bin: codeceptjs: bin/codecept.js - checksum: 240f41542907e3b674a7c2f12681dc13f1811a0e09cde89580d2c07ab6e43b2f4092d7c4fe381eef9c07e6c623877ef2bbade9bb6eb982a907f9564316fc0b1e + checksum: 9e35b6200a07d1c1880bac34932b0725ff554d0ded10fc51b8666dc57d19d76c59c511070707e747eacc1bfd6251cc78a612cc7afbc6f19c34dc299a841fb20b languageName: node linkType: hard @@ -7600,9 +7571,9 @@ __metadata: linkType: hard "console-grid@npm:^2.2.2": - version: 2.2.2 - resolution: "console-grid@npm:2.2.2" - checksum: 471a876adf80d2d56cc7dab552c2624fee5fe3abde7e6a3cb62b15c046a9be43c44b75a7b016f0ce30c91e90857e340a52e96b133101e78c38fe1d8755d6535d + version: 2.2.3 + resolution: "console-grid@npm:2.2.3" + checksum: d2df2dfe232ceb05e2c470abc3dea68539983cd9db550781800988b3e4c6828f2691199bf0a6bd6b3195466238bf41527b844c9f7dd709405d8a9d2f5e4ab29a languageName: node linkType: hard @@ -7740,11 +7711,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": - version: 3.39.0 - resolution: "core-js-compat@npm:3.39.0" + version: 3.40.0 + resolution: "core-js-compat@npm:3.40.0" dependencies: - browserslist: ^4.24.2 - checksum: 2d7d087c3271d711d03a55203d4756f6288317a1ce35cdc8bafaf1833ef21fd67a92a50cff8dcf7df1325ac63720906ab3cf514c85b238c95f65fca1040f6ad6 + browserslist: ^4.24.3 + checksum: 7ad00607c481ab2ded13d72be9ca5db5bbf42e221a175e905fb425e1ef520864aea28736c7283f57e9552d570eb6204bed87fbc8b9eab0fcfd9a7830dacccd43 languageName: node linkType: hard @@ -8070,36 +8041,36 @@ __metadata: languageName: node linkType: hard -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" +"data-view-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: ce24348f3c6231223b216da92e7e6a57a12b4af81a23f27eff8feabdf06acfb16c00639c8b705ca4d167f761cfc756e27e5f065d0a1f840c10b907fdaf8b988c + is-data-view: ^1.0.2 + checksum: 1e1cd509c3037ac0f8ba320da3d1f8bf1a9f09b0be09394b5e40781b8cc15ff9834967ba7c9f843a425b34f9fe14ce44cf055af6662c44263424c1eb8d65659b languageName: node linkType: hard -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" +"data-view-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: dbb3200edcb7c1ef0d68979834f81d64fd8cab2f7691b3a4c6b97e67f22182f3ec2c8602efd7b76997b55af6ff8bce485829c1feda4fa2165a6b71fb7baa4269 + is-data-view: ^1.0.2 + checksum: 3600c91ced1cfa935f19ef2abae11029e01738de8d229354d3b2a172bf0d7e4ed08ff8f53294b715569fdf72dfeaa96aa7652f479c0f60570878d88e7e8bddf6 languageName: node linkType: hard -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" +"data-view-byte-offset@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.2 es-errors: ^1.3.0 is-data-view: ^1.0.1 - checksum: 7f0bf8720b7414ca719eedf1846aeec392f2054d7af707c5dc9a753cc77eb8625f067fa901e0b5127e831f9da9056138d894b9c2be79c27a21f6db5824f009c2 + checksum: 8dd492cd51d19970876626b5b5169fbb67ca31ec1d1d3238ee6a71820ca8b80cafb141c485999db1ee1ef02f2cc3b99424c5eda8d59e852d9ebb79ab290eb5ee languageName: node linkType: hard @@ -8243,13 +8214,6 @@ __metadata: languageName: node linkType: hard -"deep-override@npm:^1.0.2": - version: 1.0.2 - resolution: "deep-override@npm:1.0.2" - checksum: 1f0a8880f8a40ede966c39e8308e8dd2c35699cbf9e9f763c1772bfb09fa1de6d44a813faf0f55812d0b37285299838552b1057ec49ee34db13ab632e0175077 - languageName: node - linkType: hard - "deepmerge-ts@npm:^5.0.0, deepmerge-ts@npm:^5.1.0": version: 5.1.0 resolution: "deepmerge-ts@npm:5.1.0" @@ -8291,7 +8255,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -8495,46 +8459,24 @@ __metadata: languageName: node linkType: hard -"devtools@npm:7.35.0": - version: 7.35.0 - resolution: "devtools@npm:7.35.0" +"devtools@npm:7.40.0": + version: 7.40.0 + resolution: "devtools@npm:7.40.0" dependencies: "@types/node": ^18.0.0 "@types/ua-parser-js": ^0.7.33 - "@wdio/config": 7.33.0 + "@wdio/config": 7.40.0 "@wdio/logger": 7.26.0 "@wdio/protocols": 7.27.0 - "@wdio/types": 7.33.0 - "@wdio/utils": 7.33.0 + "@wdio/types": 7.40.0 + "@wdio/utils": 7.40.0 chrome-launcher: ^0.15.0 edge-paths: ^2.1.0 puppeteer-core: 13.1.3 query-selector-shadow-dom: ^1.0.0 ua-parser-js: ^1.0.1 uuid: ^9.0.0 - checksum: 432e50d3ead014610aa2d5756f35f0ca4816427de23cf194ad088b4729a36f9f2d5ecee66f11f34b45fde80b1a1aea3a1a53d2fa1b891dc55577ed49d816fc9b - languageName: node - linkType: hard - -"devtools@npm:8.40.2": - version: 8.40.2 - resolution: "devtools@npm:8.40.2" - dependencies: - "@types/node": ^20.1.0 - "@wdio/config": 8.40.2 - "@wdio/logger": 8.38.0 - "@wdio/protocols": 8.38.0 - "@wdio/types": 8.39.0 - "@wdio/utils": 8.40.2 - chrome-launcher: ^1.0.0 - edge-paths: ^3.0.5 - import-meta-resolve: ^4.0.0 - puppeteer-core: ^21.11.0 - query-selector-shadow-dom: ^1.0.0 - ua-parser-js: ^1.0.37 - uuid: ^10.0.0 - which: ^4.0.0 - checksum: d6e9b4fd598aa6b20a6a5f0b856cc037e53e5da7df43bb73103d6edda9f75d4e254f6489e9cf4c63f476c6ac52427189799e368e810449c7f6d1314948f8afbf + checksum: a68de43316ffeb52cc51decf34bfd5aed7f3fc08ac105128987f449efbeeff4568bffbb02dcc3e34a7d0ec0cd9e4a5b11f93484de2a45032a5e904fc0d03a8b4 languageName: node linkType: hard @@ -8704,14 +8646,14 @@ __metadata: languageName: node linkType: hard -"dunder-proto@npm:^1.0.0": - version: 1.0.0 - resolution: "dunder-proto@npm:1.0.0" +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" dependencies: - call-bind-apply-helpers: ^1.0.0 + call-bind-apply-helpers: ^1.0.1 es-errors: ^1.3.0 gopd: ^1.2.0 - checksum: 6f0697b17c47377efc00651f43f34e71c09ebba85fafb4d91fe67f5810931f3fa3f45a1ef5d207debbd5682ad9abc3b71b49cb3e67222dcad71fafc92cf6199b + checksum: 149207e36f07bd4941921b0ca929e3a28f1da7bd6b6ff8ff7f4e2f2e460675af4576eeba359c635723dc189b64cdd4787e0255897d5b135ccc5d15cb8685fc90 languageName: node linkType: hard @@ -8826,17 +8768,17 @@ __metadata: languageName: node linkType: hard -"eight-colors@npm:^1.3.0": +"eight-colors@npm:^1.3.1": version: 1.3.1 resolution: "eight-colors@npm:1.3.1" checksum: 141f86f4e805c92d54ff84bc5594a40e7a3538c8eee2b453f67f4d758dd4a7de0018899d4df048b459fe7493a13a565cc2d8740635f6d266637155d3f114f420 languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.41": - version: 1.5.71 - resolution: "electron-to-chromium@npm:1.5.71" - checksum: fa86e53aa78f5f11efd922c44eccc3110a08e022e08129361af0e0534e40916f53512e86da51c39b73e4342b22e33862e0bc0568b1f95e325b03e66626c0a15f +"electron-to-chromium@npm:^1.5.73": + version: 1.5.79 + resolution: "electron-to-chromium@npm:1.5.79" + checksum: b51178250d8a3f5e8af74b6268c607d8572d62fe0771ef94054c27b504cdb0ef1e33b757c8cc0d771436176bb102c7bc02586a4b01daa5fe629edc655367e5e4 languageName: node linkType: hard @@ -8955,12 +8897,12 @@ __metadata: linkType: hard "enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.17.1": - version: 5.17.1 - resolution: "enhanced-resolve@npm:5.17.1" + version: 5.18.0 + resolution: "enhanced-resolve@npm:5.18.0" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: 4bc38cf1cea96456f97503db7280394177d1bc46f8f87c267297d04f795ac5efa81e48115a2f5b6273c781027b5b6bfc5f62b54df629e4d25fa7001a86624f59 + checksum: 77c6b11f0d19f21f52214e5a2c0dfb7070decb4045572f44be4cacf92b4be5e2c1d9a4c044a226d1003ca9daf9b71d498d256e7520ff5060f23d0284f814d392 languageName: node linkType: hard @@ -9066,68 +9008,73 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.5": - version: 1.23.5 - resolution: "es-abstract@npm:1.23.5" +"es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.9": + version: 1.23.9 + resolution: "es-abstract@npm:1.23.9" dependencies: - array-buffer-byte-length: ^1.0.1 - arraybuffer.prototype.slice: ^1.0.3 + array-buffer-byte-length: ^1.0.2 + arraybuffer.prototype.slice: ^1.0.4 available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 - data-view-buffer: ^1.0.1 - data-view-byte-length: ^1.0.1 - data-view-byte-offset: ^1.0.0 - es-define-property: ^1.0.0 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + data-view-buffer: ^1.0.2 + data-view-byte-length: ^1.0.2 + data-view-byte-offset: ^1.0.1 + es-define-property: ^1.0.1 es-errors: ^1.3.0 es-object-atoms: ^1.0.0 - es-set-tostringtag: ^2.0.3 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.4 - get-symbol-description: ^1.0.2 + es-set-tostringtag: ^2.1.0 + es-to-primitive: ^1.3.0 + function.prototype.name: ^1.1.8 + get-intrinsic: ^1.2.7 + get-proto: ^1.0.0 + get-symbol-description: ^1.1.0 globalthis: ^1.0.4 - gopd: ^1.0.1 + gopd: ^1.2.0 has-property-descriptors: ^1.0.2 - has-proto: ^1.0.3 - has-symbols: ^1.0.3 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 hasown: ^2.0.2 - internal-slot: ^1.0.7 - is-array-buffer: ^3.0.4 + internal-slot: ^1.1.0 + is-array-buffer: ^3.0.5 is-callable: ^1.2.7 - is-data-view: ^1.0.1 - is-negative-zero: ^2.0.3 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.3 - is-string: ^1.0.7 - is-typed-array: ^1.1.13 - is-weakref: ^1.0.2 + is-data-view: ^1.0.2 + is-regex: ^1.2.1 + is-shared-array-buffer: ^1.0.4 + is-string: ^1.1.1 + is-typed-array: ^1.1.15 + is-weakref: ^1.1.0 + math-intrinsics: ^1.1.0 object-inspect: ^1.13.3 object-keys: ^1.1.1 - object.assign: ^4.1.5 + object.assign: ^4.1.7 + own-keys: ^1.0.1 regexp.prototype.flags: ^1.5.3 - safe-array-concat: ^1.1.2 - safe-regex-test: ^1.0.3 - string.prototype.trim: ^1.2.9 - string.prototype.trimend: ^1.0.8 + safe-array-concat: ^1.1.3 + safe-push-apply: ^1.0.0 + safe-regex-test: ^1.1.0 + set-proto: ^1.0.0 + string.prototype.trim: ^1.2.10 + string.prototype.trimend: ^1.0.9 string.prototype.trimstart: ^1.0.8 - typed-array-buffer: ^1.0.2 - typed-array-byte-length: ^1.0.1 - typed-array-byte-offset: ^1.0.2 - typed-array-length: ^1.0.6 - unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.15 - checksum: 17c81f8a42f0322fd11e0025d3c2229ecfd7923560c710906b8e68660e19c42322750dcedf8ba5cf28bae50d5befd8174d3903ac50dbabb336d3efc3aabed2ee + typed-array-buffer: ^1.0.3 + typed-array-byte-length: ^1.0.3 + typed-array-byte-offset: ^1.0.4 + typed-array-length: ^1.0.7 + unbox-primitive: ^1.1.0 + which-typed-array: ^1.1.18 + checksum: f3ee2614159ca197f97414ab36e3f406ee748ce2f97ffbf09e420726db5a442ce13f1e574601468bff6e6eb81588e6c9ce1ac6c03868a37c7cd48ac679f8485a languageName: node linkType: hard -"es-define-property@npm:^1.0.0": +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": version: 1.0.1 resolution: "es-define-property@npm:1.0.1" checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a languageName: node linkType: hard -"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": +"es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 @@ -9135,9 +9082,9 @@ __metadata: linkType: hard "es-module-lexer@npm:^1.2.1": - version: 1.5.4 - resolution: "es-module-lexer@npm:1.5.4" - checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f + version: 1.6.0 + resolution: "es-module-lexer@npm:1.6.0" + checksum: 4413a9aed9bf581de62b98174f3eea3f23ce2994fb6832df64bdd6504f6977da1a3b5ebd3c10f75e3c2f214dcf1a1d8b54be5e62c71b7110e6ccedbf975d2b7d languageName: node linkType: hard @@ -9150,18 +9097,19 @@ __metadata: languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.3": - version: 2.0.3 - resolution: "es-set-tostringtag@npm:2.0.3" +"es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" dependencies: - get-intrinsic: ^1.2.4 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 has-tostringtag: ^1.0.2 - hasown: ^2.0.1 - checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + hasown: ^2.0.2 + checksum: 789f35de4be3dc8d11fdcb91bc26af4ae3e6d602caa93299a8c45cf05d36cc5081454ae2a6d3afa09cceca214b76c046e4f8151e092e6fc7feeb5efb9e794fc6 languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": +"es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: @@ -9170,7 +9118,7 @@ __metadata: languageName: node linkType: hard -"es-to-primitive@npm:^1.2.1": +"es-to-primitive@npm:^1.3.0": version: 1.3.0 resolution: "es-to-primitive@npm:1.3.0" dependencies: @@ -9406,6 +9354,16 @@ __metadata: languageName: node linkType: hard +"eslint-scope@npm:^8.2.0": + version: 8.2.0 + resolution: "eslint-scope@npm:8.2.0" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: 750eff4672ca2bf274ec0d1bbeae08aadd53c1907d5c6aff5564d8e047a5f49afa8ae6eee333cab637fd3ebcab2141659d8f2f040f6fdc982b0f61f8bf03136f + languageName: node + linkType: hard + "eslint-utils@npm:^2.1.0": version: 2.1.0 resolution: "eslint-utils@npm:2.1.0" @@ -9436,6 +9394,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 779c604672b570bb4da84cef32f6abb085ac78379779c1122d7879eade8bb38ae715645324597cf23232d03cef06032c9844d25c73625bc282a5bfd30247e5b5 + languageName: node + linkType: hard + "eslint@npm:^7.32.0": version: 7.32.0 resolution: "eslint@npm:7.32.0" @@ -9486,6 +9451,55 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^9.17.0": + version: 9.17.0 + resolution: "eslint@npm:9.17.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.12.1 + "@eslint/config-array": ^0.19.0 + "@eslint/core": ^0.9.0 + "@eslint/eslintrc": ^3.2.0 + "@eslint/js": 9.17.0 + "@eslint/plugin-kit": ^0.2.3 + "@humanfs/node": ^0.16.6 + "@humanwhocodes/module-importer": ^1.0.1 + "@humanwhocodes/retry": ^0.4.1 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 + ajv: ^6.12.4 + chalk: ^4.0.0 + cross-spawn: ^7.0.6 + debug: ^4.3.2 + escape-string-regexp: ^4.0.0 + eslint-scope: ^8.2.0 + eslint-visitor-keys: ^4.2.0 + espree: ^10.3.0 + esquery: ^1.5.0 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^8.0.0 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + ignore: ^5.2.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + json-stable-stringify-without-jsonify: ^1.0.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.3 + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true + bin: + eslint: bin/eslint.js + checksum: 0caae58c53bf4dc9b4893d75e62339e4c40fe5589652a3cb63f30a15bad1f34f8f784ca4fca471bbffedabee516a9f9620ebc33818b55e1b715e8f000865c851 + languageName: node + linkType: hard + "esniff@npm:^2.0.1": version: 2.0.1 resolution: "esniff@npm:2.0.1" @@ -9498,6 +9512,17 @@ __metadata: languageName: node linkType: hard +"espree@npm:^10.0.1, espree@npm:^10.3.0": + version: 10.3.0 + resolution: "espree@npm:10.3.0" + dependencies: + acorn: ^8.14.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^4.2.0 + checksum: 63e8030ff5a98cea7f8b3e3a1487c998665e28d674af08b9b3100ed991670eb3cbb0e308c4548c79e03762753838fbe530c783f17309450d6b47a889fee72bef + languageName: node + linkType: hard + "espree@npm:^7.3.0, espree@npm:^7.3.1": version: 7.3.1 resolution: "espree@npm:7.3.1" @@ -9519,7 +9544,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0": +"esquery@npm:^1.4.0, esquery@npm:^1.5.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: @@ -9848,15 +9873,15 @@ __metadata: linkType: hard "fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + micromatch: ^4.0.8 + checksum: 0704d7b85c0305fd2cef37777337dfa26230fdd072dce9fb5c82a4b03156f3ffb8ed3e636033e65d45d2a5805a4e475825369a27404c0307f2db0c8eb3366fbd languageName: node linkType: hard @@ -9896,20 +9921,20 @@ __metadata: linkType: hard "fast-uri@npm:^3.0.1": - version: 3.0.3 - resolution: "fast-uri@npm:3.0.3" - checksum: c52e6c86465f5c240e84a4485fb001088cc743d261a4b54b0050ce4758b1648bdbe53da1328ef9620149dca1435e3de64184f226d7c0a3656cb5837b3491e149 + version: 3.0.5 + resolution: "fast-uri@npm:3.0.5" + checksum: b56cda8e7355bad9adcc3c2eacd94cb592eaa9536497a4779a9527784f4f95a3755f30525c63583bd85807c493b396ac89926c970f19a60905ed875121ca78fd languageName: node linkType: hard "fast-xml-parser@npm:^4.0.12, fast-xml-parser@npm:^4.2.4, fast-xml-parser@npm:^4.4.1": - version: 4.5.0 - resolution: "fast-xml-parser@npm:4.5.0" + version: 4.5.1 + resolution: "fast-xml-parser@npm:4.5.1" dependencies: strnum: ^1.0.5 bin: fxparser: src/cli/cli.js - checksum: 696dc98da46f0f48eb26dfe1640a53043ea64f2420056374e62abbb5e620f092f8df3c3ff3195505a2eefab2057db3bf0ebaac63557f277934f6cce4e7da027c + checksum: aab32d7f08a95b20f9ecdc2d769531a9dc454faf12740873972f8169c04ab9335ac5df1029ebfe829a01ddbb0ec60572cb7769d6be2409e95a9be8fc6a86e92c languageName: node linkType: hard @@ -9921,11 +9946,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" + version: 1.18.0 + resolution: "fastq@npm:1.18.0" dependencies: reusify: ^1.0.4 - checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 + checksum: fb8d94318c2e5545a1913c1647b35e8b7825caaba888a98ef9887085e57f5a82104aefbb05f26c81d4e220f02b2ea6f2c999132186d8c77e6c681d91870191ba languageName: node linkType: hard @@ -10096,6 +10121,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" + dependencies: + flat-cache: ^4.0.0 + checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f + languageName: node + linkType: hard + "file-url@npm:~3.0.0": version: 3.0.0 resolution: "file-url@npm:3.0.0" @@ -10217,15 +10251,19 @@ __metadata: linkType: hard "find-process@npm:^1.4.7": - version: 1.4.7 - resolution: "find-process@npm:1.4.7" + version: 1.4.9 + resolution: "find-process@npm:1.4.9" dependencies: - chalk: ^4.0.0 - commander: ^5.1.0 - debug: ^4.1.1 + chalk: ~4.1.2 + commander: ^12.1.0 + debug: ^4.4.0 + eslint: ^9.17.0 + glob: ^11.0.0 + loglevel: ^1.9.2 + rimraf: ^6.0.1 bin: find-process: bin/find-process.js - checksum: 1953e6a16af86ec033d613ddfcac24f68b7ca6cc7d7aadc037ede4ccad4f03c5571d3c95165842475bfa9432120be5c995cc234c9c02726fc886ac6cd85ece3b + checksum: 907fe8387bad87cab9cb103b0b3602d85771c72cce83a35c44c5ad05f5c5c40cbd322d77944afed682b591beb449e228d4a6e6d18751b22da8743f215c7fca12 languageName: node linkType: hard @@ -10278,6 +10316,16 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.4 + checksum: 899fc86bf6df093547d76e7bfaeb900824b869d7d457d02e9b8aae24836f0a99fbad79328cfd6415ee8908f180699bf259dc7614f793447cb14f707caf5996f6 + languageName: node + linkType: hard + "flat@npm:^5.0.1": version: 5.0.2 resolution: "flat@npm:5.0.2" @@ -10309,9 +10357,9 @@ __metadata: linkType: hard "flow-parser@npm:0.*": - version: 0.256.0 - resolution: "flow-parser@npm:0.256.0" - checksum: 39e0052d6fc0b1c34bb34f61398035458f23089d54b143584b25116e4b4c80e03045b1216157a4dd8afb0e016f485e66640b8c788bd9611f2298491d8cb9512b + version: 0.258.1 + resolution: "flow-parser@npm:0.258.1" + checksum: d5f9b8540d5ee68bb0bbe33649998bca795e16700516d6fba81c94a132363f4d5074197516a2750b67c805eb6a66578f601d14951425d4d1277e8d0bb8b0eee1 languageName: node linkType: hard @@ -10398,17 +10446,6 @@ __metadata: languageName: node linkType: hard -"form-data-lite@npm:^1.0.3": - version: 1.0.3 - resolution: "form-data-lite@npm:1.0.3" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-lite: ^1.0.3 - checksum: 359737f0fc7308030ec4097dc8fd202a104a94406416c893a640b48de70eeebb6cdb3c79751de06e8e39b9bf454ca2ddf2a817d70b2de203e9b104e57a49967f - languageName: node - linkType: hard - "form-data@npm:^2.5.0": version: 2.5.2 resolution: "form-data@npm:2.5.2" @@ -10673,15 +10710,17 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 functions-have-names: ^1.2.3 - checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 + hasown: ^2.0.2 + is-callable: ^1.2.7 + checksum: 3a366535dc08b25f40a322efefa83b2da3cd0f6da41db7775f2339679120ef63b6c7e967266182609e655b8f0a8f65596ed21c7fd72ad8bd5621c2340edd4010 languageName: node linkType: hard @@ -10731,21 +10770,21 @@ __metadata: languageName: node linkType: hard -"geckodriver@npm:^4.3.1": - version: 4.5.1 - resolution: "geckodriver@npm:4.5.1" +"geckodriver@npm:~4.2.0": + version: 4.2.1 + resolution: "geckodriver@npm:4.2.1" dependencies: - "@wdio/logger": ^9.0.0 - "@zip.js/zip.js": ^2.7.48 + "@wdio/logger": ^8.11.0 decamelize: ^6.0.0 - http-proxy-agent: ^7.0.2 - https-proxy-agent: ^7.0.5 - node-fetch: ^3.3.2 - tar-fs: ^3.0.6 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + node-fetch: ^3.3.1 + tar-fs: ^3.0.4 + unzipper: ^0.10.14 which: ^4.0.0 bin: geckodriver: bin/geckodriver.js - checksum: cd32ef094421d0f9c544ec32b7cf9e0fb8afe18a059854f6e5c3ea543af7726f3607a7da1ac5a40f491a25024dcf659f91ea2937396530fc6ec7fe605f195f4d + checksum: 9773cd8c6002cdee49cad8dddd6908ff4bc00fe0eda01e47be1ea1c1a744ea265c4b81e30f4b3dafb9dc7386ed948ed4efb8e6b55be74e82b04079a482fd1f57 languageName: node linkType: hard @@ -10770,16 +10809,21 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7": + version: 1.2.7 + resolution: "get-intrinsic@npm:1.2.7" dependencies: + call-bind-apply-helpers: ^1.0.1 + es-define-property: ^1.0.1 es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 function-bind: ^1.1.2 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 + get-proto: ^1.0.0 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + math-intrinsics: ^1.1.0 + checksum: a1597b3b432074f805b6a0ba1182130dd6517c0ea0c4eecc4b8834c803913e1ea62dfc412865be795b3dacb1555a21775b70cf9af7a18b1454ff3414e5442d4a languageName: node linkType: hard @@ -10804,6 +10848,16 @@ __metadata: languageName: node linkType: hard +"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: ^1.0.1 + es-object-atoms: ^1.0.0 + checksum: 4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b + languageName: node + linkType: hard + "get-ready@npm:^1.0.0": version: 1.0.0 resolution: "get-ready@npm:1.0.0" @@ -10834,14 +10888,14 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" +"get-symbol-description@npm:^1.1.0": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" dependencies: - call-bind: ^1.0.5 + call-bound: ^1.0.3 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + get-intrinsic: ^1.2.6 + checksum: 655ed04db48ee65ef2ddbe096540d4405e79ba0a7f54225775fef43a7e2afcb93a77d141c5f05fdef0afce2eb93bcbfb3597142189d562ac167ff183582683cd languageName: node linkType: hard @@ -10926,6 +10980,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^11.0.0": + version: 11.0.0 + resolution: "glob@npm:11.0.0" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^4.0.1 + minimatch: ^10.0.0 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^2.0.0 + bin: + glob: dist/esm/bin.mjs + checksum: 8a2dd914d5776987be5244624d9491bbcaf19f2387e06783737003ff696ebfd2264190c47014f8709c1c02d8bc892f17660cf986c587b107e194c0a3151ab333 + languageName: node + linkType: hard + "glob@npm:^6.0.1": version: 6.0.4 resolution: "glob@npm:6.0.4" @@ -11018,6 +11088,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac + languageName: node + linkType: hard + "globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" @@ -11067,7 +11144,7 @@ __metadata: languageName: node linkType: hard -"gopd@npm:^1.0.1, gopd@npm:^1.1.0, gopd@npm:^1.2.0": +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": version: 1.2.0 resolution: "gopd@npm:1.2.0" checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3 @@ -11156,9 +11233,9 @@ __metadata: linkType: hard "has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 79730518ae02c77e4af6a1d1a0b6a2c3e1509785532771f9baf0241e83e36329542c3d7a0e723df8cbc85f74eff4f177828a2265a01ba576adbdc2d40d86538b languageName: node linkType: hard @@ -11185,7 +11262,7 @@ __metadata: languageName: node linkType: hard -"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": +"has-proto@npm:^1.2.0": version: 1.2.0 resolution: "has-proto@npm:1.2.0" dependencies: @@ -11194,14 +11271,14 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": version: 1.1.0 resolution: "has-symbols@npm:1.1.0" checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": +"has-tostringtag@npm:^1.0.2": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: @@ -11227,7 +11304,7 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -11516,7 +11593,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": +"http-proxy-agent@npm:^7.0.0": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -11574,13 +11651,13 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2, https-proxy-agent@npm:^7.0.5": - version: 7.0.5 - resolution: "https-proxy-agent@npm:7.0.5" +"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2, https-proxy-agent@npm:^7.0.6": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" dependencies: - agent-base: ^7.0.2 + agent-base: ^7.1.2 debug: 4 - checksum: 2e1a28960f13b041a50702ee74f240add8e75146a5c37fc98f1960f0496710f6918b3a9fe1e5aba41e50f58e6df48d107edd9c405c5f0d73ac260dabf2210857 + checksum: b882377a120aa0544846172e5db021fa8afbf83fea2a897d397bd2ddd8095ab268c24bc462f40a15f2a8c600bf4aa05ce52927f70038d4014e68aefecfa94e8d languageName: node linkType: hard @@ -11688,13 +11765,13 @@ __metadata: linkType: hard "image-size@npm:^1.0.2": - version: 1.1.1 - resolution: "image-size@npm:1.1.1" + version: 1.2.0 + resolution: "image-size@npm:1.2.0" dependencies: queue: 6.0.2 bin: image-size: bin/image-size.js - checksum: 23b3a515dded89e7f967d52b885b430d6a5a903da954fce703130bfb6069d738d80e6588efd29acfaf5b6933424a56535aa7bf06867e4ebd0250c2ee51f19a4a + checksum: 6264ae22ea6f349480c5305f84cd1e64f9757442abf4baac79e29519cba38f7ccab90488996e5e4d0c232b2f44dc720576fdf3e7e63c161e49eb1d099e563f82 languageName: node linkType: hard @@ -11733,14 +11810,14 @@ __metadata: linkType: hard "import-in-the-middle@npm:^1.8.1": - version: 1.11.3 - resolution: "import-in-the-middle@npm:1.11.3" + version: 1.12.0 + resolution: "import-in-the-middle@npm:1.12.0" dependencies: acorn: ^8.8.2 acorn-import-attributes: ^1.9.5 cjs-module-lexer: ^1.2.2 module-details-from-path: ^1.0.3 - checksum: d04a15b6c601130d48c52e2ccd5c7af35a9f8c2ca533dd3b71b38bbb40991a26c08981dd44652edbfa4e4b82263c81fb2f9af4391d6e16d2aa8cb247176af55f + checksum: 68ac204fceba98e318977623391ef1ee9925f123e2f381266206859f91f9337da5bd4b421857c88ca1b406643f93ef68cdce8d02ef6202077124bc2f4841eae4 languageName: node linkType: hard @@ -11859,14 +11936,14 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" +"internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" dependencies: es-errors: ^1.3.0 - hasown: ^2.0.0 - side-channel: ^1.0.4 - checksum: cadc5eea5d7d9bc2342e93aae9f31f04c196afebb11bde97448327049f492cd7081e18623ae71388aac9cd237b692ca3a105be9c68ac39c1dec679d7409e33eb + hasown: ^2.0.2 + side-channel: ^1.1.0 + checksum: 8e0991c2d048cc08dab0a91f573c99f6a4215075887517ea4fa32203ce8aea60fa03f95b177977fa27eb502e5168366d0f3e02c762b799691411d49900611861 languageName: node linkType: hard @@ -11893,9 +11970,16 @@ __metadata: languageName: node linkType: hard +"invisi-data@npm:^1.0.0": + version: 1.1.2 + resolution: "invisi-data@npm:1.1.2" + checksum: b205b2c499decbd6821bd1e14287c2eef13e75bff871872d20ad48c0f2e1de6576c40429cbefa48287a3685fe5988ab9b24986c3820b2248a5fcae387a66e3c3 + languageName: node + linkType: hard + "ioredis@npm:^5.3.0": - version: 5.4.1 - resolution: "ioredis@npm:5.4.1" + version: 5.4.2 + resolution: "ioredis@npm:5.4.2" dependencies: "@ioredis/commands": ^1.1.1 cluster-key-slot: ^1.1.0 @@ -11906,7 +11990,7 @@ __metadata: redis-errors: ^1.2.0 redis-parser: ^3.0.0 standard-as-callback: ^2.1.0 - checksum: 92210294f75800febe7544c27b07e4892480172363b11971aa575be5b68f023bfed4bc858abc9792230c153aa80409047a358f174062c14d17536aa4499fe10b + checksum: 6c40ef071c5fb481f4911c69512371f0a435cc426f07b8905df415030fb9a92266d63e3a674fc3b5aa1e551cda12c00965f2618bda757f164c4a3aa696822427 languageName: node linkType: hard @@ -11927,13 +12011,14 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" +"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: f137a2a6e77af682cdbffef1e633c140cf596f72321baf8bba0f4ef22685eb4339dde23dfe9e9ca430b5f961dee4d46577dcf12b792b68518c8449b134fb9156 languageName: node linkType: hard @@ -11945,11 +12030,14 @@ __metadata: linkType: hard "is-async-function@npm:^2.0.0": - version: 2.0.0 - resolution: "is-async-function@npm:2.0.0" + version: 2.1.0 + resolution: "is-async-function@npm:2.1.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd + call-bound: ^1.0.3 + get-proto: ^1.0.1 + has-tostringtag: ^1.0.2 + safe-regex-test: ^1.1.0 + checksum: e8dfa81561eb7cd845d626bf49675c735a177013943eb6919185e1f358fe8b16fd11fa477397df8ddddd31ade47092de8243997530931a4ec17cb2b9d15479c9 languageName: node linkType: hard @@ -11971,13 +12059,13 @@ __metadata: languageName: node linkType: hard -"is-boolean-object@npm:^1.2.0": - version: 1.2.0 - resolution: "is-boolean-object@npm:1.2.0" +"is-boolean-object@npm:^1.2.1": + version: 1.2.1 + resolution: "is-boolean-object@npm:1.2.1" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.2 has-tostringtag: ^1.0.2 - checksum: cebc780cc3881dfb0c6c933e308f6a8eccf07ef92a7ea533fb2ee4fb7d704473b476f0b345fea4f2f45fe70937ef568a2f450eb6000d08b99350d87280927ff8 + checksum: 2672609f0f2536172873810a38ec006a415e43ddc6a240f7638a1659cb20dfa91cc75c8a1bed36247bb046aa8f0eab945f20d1203bc69606418bd129c745f861 languageName: node linkType: hard @@ -11995,30 +12083,33 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.5.0": - version: 2.15.1 - resolution: "is-core-module@npm:2.15.1" +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0, is-core-module@npm:^2.5.0": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" dependencies: hasown: ^2.0.2 - checksum: df134c168115690724b62018c37b2f5bba0d5745fa16960b329c5a00883a8bea6a5632fdb1e3efcce237c201826ba09f93197b7cd95577ea56b0df335be23633 + checksum: 6ec5b3c42d9cbf1ac23f164b16b8a140c3cec338bf8f884c076ca89950c7cc04c33e78f02b8cae7ff4751f3247e3174b2330f1fe4de194c7210deb8b1ea316a7 languageName: node linkType: hard -"is-data-view@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-view@npm:1.0.1" +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": + version: 1.0.2 + resolution: "is-data-view@npm:1.0.2" dependencies: + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 is-typed-array: ^1.1.13 - checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 + checksum: 31600dd19932eae7fd304567e465709ffbfa17fa236427c9c864148e1b54eb2146357fcf3aed9b686dee13c217e1bb5a649cb3b9c479e1004c0648e9febde1b2 languageName: node linkType: hard -"is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" +"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: d6c36ab9d20971d65f3fc64cef940d57a4900a2ac85fb488a46d164c2072a33da1cb51eefcc039e3e5c208acbce343d3480b84ab5ff0983f617512da2742562a languageName: node linkType: hard @@ -12053,11 +12144,11 @@ __metadata: linkType: hard "is-finalizationregistry@npm:^1.1.0": - version: 1.1.0 - resolution: "is-finalizationregistry@npm:1.1.0" + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" dependencies: - call-bind: ^1.0.7 - checksum: 480818ab86e112a00444410a2fd551a5363bca0c39c7bc66e29df665b1e47c803ba107227c1db86d67264a3f020779fab257061463ce02b01b6abbe5966e33b8 + call-bound: ^1.0.3 + checksum: 38c646c506e64ead41a36c182d91639833311970b6b6c6268634f109eef0a1a9d2f1f2e499ef4cb43c744a13443c4cdd2f0812d5afdcee5e9b65b72b28c48557 languageName: node linkType: hard @@ -12090,11 +12181,14 @@ __metadata: linkType: hard "is-generator-function@npm:^1.0.10": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" + version: 1.1.0 + resolution: "is-generator-function@npm:1.1.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: d54644e7dbaccef15ceb1e5d91d680eb5068c9ee9f9eb0a9e04173eb5542c9b51b5ab52c5537f5703e48d5fddfd376817c1ca07a84a407b7115b769d4bdde72b + call-bound: ^1.0.3 + get-proto: ^1.0.0 + has-tostringtag: ^1.0.2 + safe-regex-test: ^1.1.0 + checksum: f7f7276131bdf7e28169b86ac55a5b080012a597f9d85a0cbef6fe202a7133fa450a3b453e394870e3cb3685c5a764c64a9f12f614684b46969b1e6f297bed6b languageName: node linkType: hard @@ -12128,13 +12222,6 @@ __metadata: languageName: node linkType: hard -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd - languageName: node - linkType: hard - "is-number-like@npm:^1.0.3": version: 1.0.8 resolution: "is-number-like@npm:1.0.8" @@ -12144,13 +12231,13 @@ __metadata: languageName: node linkType: hard -"is-number-object@npm:^1.1.0": - version: 1.1.0 - resolution: "is-number-object@npm:1.1.0" +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 has-tostringtag: ^1.0.2 - checksum: 965f91493e5c02a44bb9c5d8dd4ae40da20bd9bd1cff9cd92e2f2e66a486935a0a01f8a4744eab033c450888f01a4ec3226e1c75bbcff973ce12d06ed79eb17b + checksum: 6517f0a0e8c4b197a21afb45cd3053dc711e79d45d8878aa3565de38d0102b130ca8732485122c7b336e98c27dacd5236854e3e6526e0eb30cae64956535662f languageName: node linkType: hard @@ -12205,15 +12292,15 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.1.4": - version: 1.2.0 - resolution: "is-regex@npm:1.2.0" +"is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" dependencies: - call-bind: ^1.0.7 - gopd: ^1.1.0 + call-bound: ^1.0.2 + gopd: ^1.2.0 has-tostringtag: ^1.0.2 hasown: ^2.0.2 - checksum: dd2693d71866850d1276815204a2629d28dc1d24bd56b734e57a39f56b777cd87030d57552e7093d91a2ac331d99af9dba49a0a641fa4e4435d40e944d4dde12 + checksum: 99ee0b6d30ef1bb61fa4b22fae7056c6c9b3c693803c0c284ff7a8570f83075a7d38cda53b06b7996d441215c27895ea5d1af62124562e13d91b3dbec41a5e13 languageName: node linkType: hard @@ -12224,12 +12311,12 @@ __metadata: languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" +"is-shared-array-buffer@npm:^1.0.4": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" dependencies: - call-bind: ^1.0.7 - checksum: a4fff602c309e64ccaa83b859255a43bb011145a42d3f56f67d9268b55bc7e6d98a5981a1d834186ad3105d6739d21547083fe7259c76c0468483fc538e716d8 + call-bound: ^1.0.3 + checksum: 1611fedc175796eebb88f4dfc393dd969a4a8e6c69cadaff424ee9d4464f9f026399a5f84a90f7c62d6d7ee04e3626a912149726de102b0bd6c1ee6a9868fa5a languageName: node linkType: hard @@ -12247,33 +12334,33 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.4, is-string@npm:^1.0.7, is-string@npm:^1.1.0": - version: 1.1.0 - resolution: "is-string@npm:1.1.0" +"is-string@npm:^1.0.4, is-string@npm:^1.0.7, is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 has-tostringtag: ^1.0.2 - checksum: 1e330e9fe0984cdf37371f704f9babf9b56d50b1e9d2e6c19b8b78443be3e9771c33309b4aadde9ba2a8870769374538681e01f54113a335dd393c80a72e7d11 + checksum: 2eeaaff605250f5e836ea3500d33d1a5d3aa98d008641d9d42fb941e929ffd25972326c2ef912987e54c95b6f10416281aaf1b35cdf81992cfb7524c5de8e193 languageName: node linkType: hard -"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.0": - version: 1.1.0 - resolution: "is-symbol@npm:1.1.0" +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" dependencies: - call-bind: ^1.0.7 - has-symbols: ^1.0.3 - safe-regex-test: ^1.0.3 - checksum: 3623c934c8e61ddd6ef0927a17eb3da3cb9a9894f2fb8a96d447887d085d43e5d8bb59a8f97e46b54a919fc3f8845df29686672ad693d028570627bc661bcb6c + call-bound: ^1.0.2 + has-symbols: ^1.1.0 + safe-regex-test: ^1.1.0 + checksum: bfafacf037af6f3c9d68820b74be4ae8a736a658a3344072df9642a090016e281797ba8edbeb1c83425879aae55d1cb1f30b38bf132d703692b2570367358032 languageName: node linkType: hard -"is-typed-array@npm:^1.1.13": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" dependencies: - which-typed-array: ^1.1.14 - checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 + which-typed-array: ^1.1.16 + checksum: ea7cfc46c282f805d19a9ab2084fd4542fed99219ee9dbfbc26284728bd713a51eac66daa74eca00ae0a43b61322920ba334793607dc39907465913e921e0892 languageName: node linkType: hard @@ -12298,22 +12385,22 @@ __metadata: languageName: node linkType: hard -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0": + version: 1.1.0 + resolution: "is-weakref@npm:1.1.0" dependencies: - call-bind: ^1.0.2 - checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + call-bound: ^1.0.2 + checksum: 2a2f3a1746ee1baecf9ac6483d903cd3f8ef3cca88e2baa42f2e85ea064bd246d218eed5f6d479fc1c76dae2231e71133b6b86160e821d176932be9fae3da4da languageName: node linkType: hard "is-weakset@npm:^2.0.3": - version: 2.0.3 - resolution: "is-weakset@npm:2.0.3" + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" dependencies: - call-bind: ^1.0.7 - get-intrinsic: ^1.2.4 - checksum: 8b6a20ee9f844613ff8f10962cfee49d981d584525f2357fee0a04dfbcde9fd607ed60cb6dab626dbcc470018ae6392e1ff74c0c1aced2d487271411ad9d85ae + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: 5c6c8415a06065d78bdd5e3a771483aa1cd928df19138aa73c4c51333226f203f22117b4325df55cc8b3085a6716870a320c2d757efee92d7a7091a039082041 languageName: node linkType: hard @@ -12461,6 +12548,15 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^4.0.1": + version: 4.0.2 + resolution: "jackspeak@npm:4.0.2" + dependencies: + "@isaacs/cliui": ^8.0.2 + checksum: 210030029edfa1658328799ad88c3d0fc057c4cb8a069fc4137cc8d2cc4b65c9721c6e749e890f9ca77a954bb54f200f715b8896e50d330e5f3e902e72b40974 + languageName: node + linkType: hard + "jest-changed-files@npm:^27.5.1": version: 27.5.1 resolution: "jest-changed-files@npm:27.5.1" @@ -13432,7 +13528,16 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" + bin: + jsesc: bin/jsesc + checksum: 19c94095ea026725540c0d29da33ab03144f6bcf2d4159e4833d534976e99e0c09c38cefa9a575279a51fc36b31166f8d6d05c9fe2645d5f15851d690b41f17f + languageName: node + linkType: hard + +"jsesc@npm:~3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" bin: @@ -13469,13 +13574,6 @@ __metadata: languageName: node linkType: hard -"json-query@npm:^2.2.2": - version: 2.2.2 - resolution: "json-query@npm:2.2.2" - checksum: dba8bb9213124bac9c3a3bd13a9993754069d1c2b1acc0cd2537472b5f95176d690690684081155c4ee5f161d2f7d209cf9761dbf6407e42c61f4bf7a29aa53b - languageName: node - linkType: hard - "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -13576,7 +13674,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.0.0, keyv@npm:^4.5.3": +"keyv@npm:^4.0.0, keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -13624,13 +13722,6 @@ __metadata: languageName: node linkType: hard -"klona@npm:^2.0.4, klona@npm:^2.0.6": - version: 2.0.6 - resolution: "klona@npm:2.0.6" - checksum: ac9ee3732e42b96feb67faae4d27cf49494e8a3bf3fa7115ce242fe04786788e0aff4741a07a45a2462e2079aa983d73d38519c85d65b70ef11447bbc3c58ce7 - languageName: node - linkType: hard - "kruptein@npm:^2.0.4": version: 2.2.3 resolution: "kruptein@npm:2.2.3" @@ -13743,13 +13834,6 @@ __metadata: languageName: node linkType: hard -"lightcookie@npm:^1.0.25": - version: 1.0.25 - resolution: "lightcookie@npm:1.0.25" - checksum: 86f753d5b442f593670f54033d09a93dd8523f4fa499cd85d0abc676766b4307bcad0bee839f39405348286a7312fb04cc76068edb99264ee17ec6d65ae68a48 - languageName: node - linkType: hard - "lighthouse-logger@npm:^1.0.0": version: 1.4.2 resolution: "lighthouse-logger@npm:1.4.2" @@ -13760,16 +13844,6 @@ __metadata: languageName: node linkType: hard -"lighthouse-logger@npm:^2.0.1": - version: 2.0.1 - resolution: "lighthouse-logger@npm:2.0.1" - dependencies: - debug: ^2.6.9 - marky: ^1.2.2 - checksum: 65f633e0cf6722dac2f31d886b49064a100301d3e44650810ce64ff1a358b35bfc9c828a853ae386f19e4eb1cce80a61195529b7fb5af9f5a6c90051b801ab6f - languageName: node - linkType: hard - "lilconfig@npm:2.0.5": version: 2.0.5 resolution: "lilconfig@npm:2.0.5" @@ -14203,7 +14277,7 @@ __metadata: languageName: node linkType: hard -"loglevel@npm:^1.6.0": +"loglevel@npm:^1.6.0, loglevel@npm:^1.9.2": version: 1.9.2 resolution: "loglevel@npm:1.9.2" checksum: 896c67b90a507bfcfc1e9a4daa7bf789a441dd70d95cd13b998d6dd46233a3bfadfb8fadb07250432bbfb53bf61e95f2520f9b11f9d3175cc460e5c251eca0af @@ -14260,6 +14334,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^11.0.0": + version: 11.0.2 + resolution: "lru-cache@npm:11.0.2" + checksum: f9c27c58919a30f42834de9444de9f75bcbbb802c459239f96dd449ad880d8f9a42f51556d13659864dc94ab2dbded9c4a4f42a3e25a45b6da01bb86111224df + languageName: node + linkType: hard + "lru-cache@npm:^4.1.1": version: 4.1.5 resolution: "lru-cache@npm:4.1.5" @@ -14452,12 +14533,10 @@ __metadata: languageName: node linkType: hard -"matchit@npm:^1.0.0": +"math-intrinsics@npm:^1.1.0": version: 1.1.0 - resolution: "matchit@npm:1.1.0" - dependencies: - "@arr/every": ^1.0.0 - checksum: 14617343d9f77a5f2a2e9e5213b1d6c1c7b3efda10758d1502e632edf63bf77f260e3f1aa2afdc97dd7e259fae7845a1b07719cd4680d2f1d23b2aa45a393934 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 languageName: node linkType: hard @@ -14833,13 +14912,6 @@ __metadata: languageName: node linkType: hard -"mime-lite@npm:^1.0.3": - version: 1.0.3 - resolution: "mime-lite@npm:1.0.3" - checksum: 6bc68c97273bf6da586383dbe8415675f0000ac51622f871073a4012a26c3486342ab7837a1f3d5ed734ed38d58996c90487adf88c6b6528ee2ce43b39b1656d - languageName: node - linkType: hard - "mime-match@npm:^1.0.2": version: 1.0.2 resolution: "mime-match@npm:1.0.2" @@ -15198,9 +15270,9 @@ __metadata: languageName: node linkType: hard -"mocha@npm:10.7.3": - version: 10.7.3 - resolution: "mocha@npm:10.7.3" +"mocha@npm:10.8.2": + version: 10.8.2 + resolution: "mocha@npm:10.8.2" dependencies: ansi-colors: ^4.1.3 browser-stdout: ^1.3.1 @@ -15225,7 +15297,7 @@ __metadata: bin: _mocha: bin/_mocha mocha: bin/mocha.js - checksum: 956376dd8c7cd3e4f496ab1b06b7c89673ade2fb7f78704d8fce32b491f6940550eb1e784b7eef617e37fa29257a728df8b5b2b5e34ed7e83a692652290fab3c + checksum: 68cb519503f1e8ffd9b0651e1aef75dfe4754425186756b21e53169da44b5bcb1889e2b743711205082763d3f9a42eb8eb2c13bb1a718a08cb3a5f563bfcacdc languageName: node linkType: hard @@ -15285,18 +15357,16 @@ __metadata: languageName: node linkType: hard -"monocart-coverage-reports@npm:2.10.3": - version: 2.10.3 - resolution: "monocart-coverage-reports@npm:2.10.3" +"monocart-coverage-reports@npm:2.11.3": + version: 2.11.3 + resolution: "monocart-coverage-reports@npm:2.11.3" dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jridgewell/sourcemap-codec": ^1.5.0 - acorn: ^8.12.1 + acorn: ^8.14.0 acorn-loose: ^8.4.0 - acorn-walk: ^8.3.3 + acorn-walk: ^8.3.4 commander: ^12.1.0 console-grid: ^2.2.2 - eight-colors: ^1.3.0 + eight-colors: ^1.3.1 foreground-child: ^3.3.0 istanbul-lib-coverage: ^3.2.2 istanbul-lib-report: ^3.0.1 @@ -15305,7 +15375,7 @@ __metadata: monocart-locator: ^1.0.2 bin: mcr: lib/cli.js - checksum: b77bc644ffb619d7983b1ad1e3b02e822f600b5e95e361d2a3faa22aae5b8559ac4f96eaa4c71a18bf124369275ae340c7333a0fcb337655a0b105f15462a5ae + checksum: c75dcc8883c572d886fccc4dd80d8f3d51c075471c858a18f24d45e29d62e44cba5c75d8b5ffcc1fab10e7b898179b10dc000d81d5546c3919d02a80a008b30c languageName: node linkType: hard @@ -15620,7 +15690,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^3.3.2": +"node-fetch@npm:^3.3.1, node-fetch@npm:^3.3.2": version: 3.3.2 resolution: "node-fetch@npm:3.3.2" dependencies: @@ -15689,10 +15759,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.18": - version: 2.0.18 - resolution: "node-releases@npm:2.0.18" - checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 917dbced519f48c6289a44830a0ca6dc944c3ee9243c468ebd8515a41c97c8b2c256edb7f3f750416bc37952cc9608684e6483c7b6c6f39f6bd8d86c52cfe658 languageName: node linkType: hard @@ -15954,7 +16024,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.2, object-inspect@npm:^1.13.1, object-inspect@npm:^1.13.3": +"object-inspect@npm:^1.12.2, object-inspect@npm:^1.13.3": version: 1.13.3 resolution: "object-inspect@npm:1.13.3" checksum: 8c962102117241e18ea403b84d2521f78291b774b03a29ee80a9863621d88265ffd11d0d7e435c4c2cea0dc2a2fbf8bbc92255737a05536590f2df2e8756f297 @@ -15968,15 +16038,17 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" +"object.assign@npm:^4.1.7": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" dependencies: - call-bind: ^1.0.5 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 - has-symbols: ^1.0.3 + es-object-atoms: ^1.0.0 + has-symbols: ^1.1.0 object-keys: ^1.1.1 - checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 + checksum: 60e07d2651cf4f5528c485f1aa4dbded9b384c47d80e8187cefd11320abb1aebebf78df5483451dfa549059f8281c21f7b4bf7d19e9e5e97d8d617df0df298de languageName: node linkType: hard @@ -16004,13 +16076,14 @@ __metadata: linkType: hard "object.values@npm:^1.2.0": - version: 1.2.0 - resolution: "object.values@npm:1.2.0" + version: 1.2.1 + resolution: "object.values@npm:1.2.1" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 es-object-atoms: ^1.0.0 - checksum: 51fef456c2a544275cb1766897f34ded968b22adfc13ba13b5e4815fdaf4304a90d42a3aee114b1f1ede048a4890381d47a5594d84296f2767c6a0364b9da8fa + checksum: f9b9a2a125ccf8ded29414d7c056ae0d187b833ee74919821fc60d7e216626db220d9cb3cf33f965c84aaaa96133626ca13b80f3c158b673976dc8cfcfcd26bb languageName: node linkType: hard @@ -16092,15 +16165,6 @@ __metadata: languageName: node linkType: hard -"openapi-fuzzer-core@npm:^1.0.6": - version: 1.0.6 - resolution: "openapi-fuzzer-core@npm:1.0.6" - dependencies: - klona: ^2.0.4 - checksum: c609c28adc34f9bd4e53568296cc06c877b1f3768feb740adb5369054b0bc3b3ae9491f2e88d468f3ec7dde2ca99c3921f213898db11b14e3954e46e65c90842 - languageName: node - linkType: hard - "opener@npm:^1.5.2": version: 1.5.2 resolution: "opener@npm:1.5.2" @@ -16119,7 +16183,7 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.1": +"optionator@npm:^0.9.1, optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" dependencies: @@ -16192,6 +16256,17 @@ __metadata: languageName: node linkType: hard +"own-keys@npm:^1.0.1": + version: 1.0.1 + resolution: "own-keys@npm:1.0.1" + dependencies: + get-intrinsic: ^1.2.6 + object-keys: ^1.1.1 + safe-push-apply: ^1.0.0 + checksum: cc9dd7d85c4ccfbe8109fce307d581ac7ede7b26de892b537873fbce2dc6a206d89aea0630dbb98e47ce0873517cefeaa7be15fcf94aaf4764a3b34b474a5b61 + languageName: node + linkType: hard + "p-cancelable@npm:^2.0.0": version: 2.1.1 resolution: "p-cancelable@npm:2.1.1" @@ -16328,18 +16403,18 @@ __metadata: linkType: hard "pac-proxy-agent@npm:^7.0.1": - version: 7.0.2 - resolution: "pac-proxy-agent@npm:7.0.2" + version: 7.1.0 + resolution: "pac-proxy-agent@npm:7.1.0" dependencies: "@tootallnate/quickjs-emscripten": ^0.23.0 - agent-base: ^7.0.2 + agent-base: ^7.1.2 debug: ^4.3.4 get-uri: ^6.0.1 http-proxy-agent: ^7.0.0 - https-proxy-agent: ^7.0.5 + https-proxy-agent: ^7.0.6 pac-resolver: ^7.0.1 - socks-proxy-agent: ^8.0.4 - checksum: 82772aaa489a4ad6f598b75d56daf609e7ba294a05a91cfe3101b004e2df494f0a269c98452cb47aaa4a513428e248308a156e26fee67eb78a76a58e9346921e + socks-proxy-agent: ^8.0.5 + checksum: 0ed8ebca239b5c78f7c5039ec0e33aaf6ce8de2fb53d00996b5b7b362e655af9793721008ddf56c4b1d30fb5202b2cb5baee97e374ed1285c0cfb5be7c4574a5 languageName: node linkType: hard @@ -16360,32 +16435,6 @@ __metadata: languageName: node linkType: hard -"pactum-matchers@npm:^1.1.7": - version: 1.1.7 - resolution: "pactum-matchers@npm:1.1.7" - checksum: ed3205d15137b5cb8fb20c724a3965d37b0283a184f0f40cc3721b4c8fae2cf210574bbff240627cc611ba2ed77e8ae9b3e9223edc56309b8213eba24bcfcf47 - languageName: node - linkType: hard - -"pactum@npm:3.7.1": - version: 3.7.1 - resolution: "pactum@npm:3.7.1" - dependencies: - "@exodus/schemasafe": ^1.3.0 - deep-override: ^1.0.2 - form-data-lite: ^1.0.3 - json-query: ^2.2.2 - klona: ^2.0.6 - lightcookie: ^1.0.25 - openapi-fuzzer-core: ^1.0.6 - pactum-matchers: ^1.1.7 - parse-graphql: ^1.0.0 - phin: ^3.7.0 - polka: ^0.5.2 - checksum: a5c4f6feadf85be2f79fb4b395e7e8542326c048a1e770f9e1e23a2c04dfee7404c9e336022a733568af87cf880ed5e3f1ac2a8ab963db9f44cd19ad2223bb46 - languageName: node - linkType: hard - "pako@npm:~1.0.2": version: 1.0.11 resolution: "pako@npm:1.0.11" @@ -16440,13 +16489,6 @@ __metadata: languageName: node linkType: hard -"parse-graphql@npm:^1.0.0": - version: 1.0.0 - resolution: "parse-graphql@npm:1.0.0" - checksum: b4b50f8b2db287764c8f7acb434f6eefbaec8fdbef1cd70120bb934ab57f431eff3c819ce6ca4eb0bc649cc5772b6a0b8fde2333f14974a677db5d1d0dd0182c - languageName: node - linkType: hard - "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -16476,16 +16518,7 @@ __metadata: languageName: node linkType: hard -"parse5@npm:7.1.2": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" - dependencies: - entities: ^4.4.0 - checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 - languageName: node - linkType: hard - -"parse5@npm:^7.0.0, parse5@npm:^7.1.1": +"parse5@npm:7.2.1, parse5@npm:^7.0.0, parse5@npm:^7.1.1": version: 7.2.1 resolution: "parse5@npm:7.2.1" dependencies: @@ -16573,6 +16606,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^2.0.0": + version: 2.0.0 + resolution: "path-scurry@npm:2.0.0" + dependencies: + lru-cache: ^11.0.0 + minipass: ^7.1.2 + checksum: 9953ce3857f7e0796b187a7066eede63864b7e1dfc14bf0484249801a5ab9afb90d9a58fc533ebb1b552d23767df8aa6a2c6c62caf3f8a65f6ce336a97bbb484 + languageName: node + linkType: hard + "path-to-regexp@npm:0.1.12": version: 0.1.12 resolution: "path-to-regexp@npm:0.1.12" @@ -16665,16 +16708,7 @@ __metadata: languageName: node linkType: hard -"phin@npm:^3.7.0": - version: 3.7.1 - resolution: "phin@npm:3.7.1" - dependencies: - centra: ^2.7.0 - checksum: eebbfb0ab63d90f1513a2da05ef5ccc4bfb17216567fe62e9f0b8a4da27ff301b6409da8dcada6a66711c040b318ffb456e1adf24e8d261e24a916d30d91aadf - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 @@ -16896,16 +16930,6 @@ __metadata: languageName: node linkType: hard -"polka@npm:^0.5.2": - version: 0.5.2 - resolution: "polka@npm:0.5.2" - dependencies: - "@polka/url": ^0.5.0 - trouter: ^2.0.1 - checksum: 5f4994e78985e10f77fcccced4d3781ba3f896059f66be6099ee189007b73a9bd4d136f73e4156f731bfe3ead66b1d44448b9be6e57e88fa28b53a6096bd3f11 - languageName: node - linkType: hard - "portscanner@npm:2.2.0": version: 2.2.0 resolution: "portscanner@npm:2.2.0" @@ -16933,15 +16957,15 @@ __metadata: linkType: hard "postcss-modules-local-by-default@npm:^4.0.5": - version: 4.1.0 - resolution: "postcss-modules-local-by-default@npm:4.1.0" + version: 4.2.0 + resolution: "postcss-modules-local-by-default@npm:4.2.0" dependencies: icss-utils: ^5.0.0 postcss-selector-parser: ^7.0.0 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: 64ac4803c21dd82e227179cf0a8489c645ea99a8c514475da028c9afe5d5b915485d00d8efbe94295d688a23a172965cc15f20d550168d1fed272dbdbbe053f0 + checksum: 720d145453f82ad5f1c1d0ff7386d64722f0812808e4132e573c1a49909745e109fcce3792a0b0cb18770dbeb3d9741867e81c698dc8353a18bc664b7d6d9533 languageName: node linkType: hard @@ -16996,9 +17020,9 @@ __metadata: linkType: hard "preact@npm:^10.5.13": - version: 10.25.1 - resolution: "preact@npm:10.25.1" - checksum: 7b31f82acfc5eaccc70c19b55ff2bc8edb3d636dfb84e254c9258871c69e1652876efe4bb3a5f21bf521386b001bc6c8831e535d41eecbe0f31c13a0e2a062a3 + version: 10.25.4 + resolution: "preact@npm:10.25.4" + checksum: 309f3128267c5bcac828c70a7a97fba0fdfed7b9ef2ece32a50bf94d257b5c825975df0648d9d5c79f90201d3a295cb2c9f511640aca37cb6879e509688b885a languageName: node linkType: hard @@ -17870,15 +17894,15 @@ __metadata: linkType: hard "readable-stream@npm:^4.0.0": - version: 4.5.2 - resolution: "readable-stream@npm:4.5.2" + version: 4.7.0 + resolution: "readable-stream@npm:4.7.0" dependencies: abort-controller: ^3.0.0 buffer: ^6.0.3 events: ^3.3.0 process: ^0.11.10 string_decoder: ^1.3.0 - checksum: c4030ccff010b83e4f33289c535f7830190773e274b3fcb6e2541475070bdfd69c98001c3b0cb78763fc00c8b62f514d96c2b10a8bd35d5ce45203a25fa1d33a + checksum: 03ec762faed8e149dc6452798b60394a8650861a1bb4bf936fa07b94044826bc25abe73696f5f45372abc404eec01876c560f64b479eba108b56397312dbe2ae languageName: node linkType: hard @@ -17998,13 +18022,6 @@ __metadata: languageName: node linkType: hard -"reflect-metadata@npm:0.1.13": - version: 0.1.13 - resolution: "reflect-metadata@npm:0.1.13" - checksum: 798d379a7b6f6455501145419505c97dd11cbc23857a386add2b9ef15963ccf15a48d9d15507afe01d4cd74116df8a213247200bac00320bd7c11ddeaa5e8fb4 - languageName: node - linkType: hard - "reflect-metadata@npm:0.2.2": version: 0.2.2 resolution: "reflect-metadata@npm:0.2.2" @@ -18012,19 +18029,19 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.6": - version: 1.0.8 - resolution: "reflect.getprototypeof@npm:1.0.8" +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.10 + resolution: "reflect.getprototypeof@npm:1.0.10" dependencies: call-bind: ^1.0.8 define-properties: ^1.2.1 - dunder-proto: ^1.0.0 - es-abstract: ^1.23.5 + es-abstract: ^1.23.9 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - gopd: ^1.2.0 - which-builtin-type: ^1.2.0 - checksum: d7dcbe34bec80f50e2b2f824af83302aae2520863b56b967052ade76402cddcb61933690931d567b973ff7635ae39ff655237ad9cdb2be755190eace95c1768b + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.7 + get-proto: ^1.0.1 + which-builtin-type: ^1.2.1 + checksum: ccc5debeb66125e276ae73909cecb27e47c35d9bb79d9cc8d8d055f008c58010ab8cb401299786e505e4aab733a64cba9daf5f312a58e96a43df66adad221870 languageName: node linkType: hard @@ -18086,14 +18103,16 @@ __metadata: linkType: hard "regexp.prototype.flags@npm:^1.5.3": - version: 1.5.3 - resolution: "regexp.prototype.flags@npm:1.5.3" + version: 1.5.4 + resolution: "regexp.prototype.flags@npm:1.5.4" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 define-properties: ^1.2.1 es-errors: ^1.3.0 + get-proto: ^1.0.1 + gopd: ^1.2.0 set-function-name: ^2.0.2 - checksum: 83ff0705b837f7cb6d664010a11642250f36d3f642263dd0f3bdfe8f150261aa7b26b50ee97f21c1da30ef82a580bb5afedbef5f45639d69edaafbeac9bbb0ed + checksum: 18cb667e56cb328d2dda569d7f04e3ea78f2683135b866d606538cf7b1d4271f7f749f09608c877527799e6cf350e531368f3c7a20ccd1bb41048a48926bdeeb languageName: node linkType: hard @@ -18257,28 +18276,28 @@ __metadata: linkType: hard "resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.4, resolve@npm:^1.22.8, resolve@npm:^1.9.0": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" + version: 1.22.10 + resolution: "resolve@npm:1.22.10" dependencies: - is-core-module: ^2.13.0 + is-core-module: ^2.16.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c + checksum: ab7a32ff4046fcd7c6fdd525b24a7527847d03c3650c733b909b01b757f92eb23510afa9cc3e9bf3f26a3e073b48c88c706dfd4c1d2fb4a16a96b73b6328ddcf languageName: node linkType: hard "resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.22.8#~builtin, resolve@patch:resolve@^1.9.0#~builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#~builtin::version=1.22.10&hash=c3c19d" dependencies: - is-core-module: ^2.13.0 + is-core-module: ^2.16.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 + checksum: 8aac1e4e4628bd00bf4b94b23de137dd3fe44097a8d528fd66db74484be929936e20c696e1a3edf4488f37e14180b73df6f600992baea3e089e8674291f16c9d languageName: node linkType: hard @@ -18405,6 +18424,18 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:^6.0.1": + version: 6.0.1 + resolution: "rimraf@npm:6.0.1" + dependencies: + glob: ^11.0.0 + package-json-from-dist: ^1.0.0 + bin: + rimraf: dist/esm/bin.mjs + checksum: 8ba5b84131c1344e9417cb7e8c05d8368bb73cbe5dd4c1d5eb49fc0b558209781658d18c450460e30607d0b7865bb067482839a2f343b186b07ae87715837e66 + languageName: node + linkType: hard + "rimraf@npm:~2.4.0": version: 2.4.5 resolution: "rimraf@npm:2.4.5" @@ -18500,15 +18531,16 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.1.2": - version: 1.1.2 - resolution: "safe-array-concat@npm:1.1.2" +"safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" dependencies: - call-bind: ^1.0.7 - get-intrinsic: ^1.2.4 - has-symbols: ^1.0.3 + call-bind: ^1.0.8 + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 isarray: ^2.0.5 - checksum: a3b259694754ddfb73ae0663829e396977b99ff21cbe8607f35a469655656da8e271753497e59da8a7575baa94d2e684bea3e10ddd74ba046c0c9b4418ffa0c4 + checksum: 00f6a68140e67e813f3ad5e73e6dedcf3e42a9fa01f04d44b0d3f7b1f4b257af876832a9bfc82ac76f307e8a6cc652e3cf95876048a26cbec451847cf6ae3707 languageName: node linkType: hard @@ -18540,14 +18572,24 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" +"safe-push-apply@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-push-apply@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + isarray: ^2.0.5 + checksum: 8c11cbee6dc8ff5cc0f3d95eef7052e43494591384015902e4292aef4ae9e539908288520ed97179cee17d6ffb450fe5f05a46ce7a1749685f7524fd568ab5db + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.2 es-errors: ^1.3.0 - is-regex: ^1.1.4 - checksum: 6c7d392ff1ae7a3ae85273450ed02d1d131f1d2c76e177d6b03eb88e6df8fa062639070e7d311802c1615f351f18dc58f9454501c58e28d5ffd9b8f502ba6489 + is-regex: ^1.2.1 + checksum: 3c809abeb81977c9ed6c869c83aca6873ea0f3ab0f806b8edbba5582d51713f8a6e9757d24d2b4b088f563801475ea946c8e77e7713e8c65cdd02305b6caedab languageName: node linkType: hard @@ -18686,7 +18728,7 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": +"schema-utils@npm:^3.2.0": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" dependencies: @@ -18697,15 +18739,15 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^4.0.0": - version: 4.2.0 - resolution: "schema-utils@npm:4.2.0" +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.3.0": + version: 4.3.0 + resolution: "schema-utils@npm:4.3.0" dependencies: "@types/json-schema": ^7.0.9 ajv: ^8.9.0 ajv-formats: ^2.1.1 ajv-keywords: ^5.1.0 - checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde + checksum: 3dbd9056727c871818eaf3cabeeb5c9e173ae2b17bbf2a9c7a2e49c220fa1a580e44df651c876aea3b4926cecf080730a39e28202cb63f2b68d99872b49cd37a languageName: node linkType: hard @@ -18895,6 +18937,17 @@ __metadata: languageName: node linkType: hard +"set-proto@npm:^1.0.0": + version: 1.0.0 + resolution: "set-proto@npm:1.0.0" + dependencies: + dunder-proto: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + checksum: ec27cbbe334598547e99024403e96da32aca3e530583e4dba7f5db1c43cbc4affa9adfbd77c7b2c210b9b8b2e7b2e600bad2a6c44fd62e804d8233f96bbb62f4 + languageName: node + linkType: hard + "setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5, setimmediate@npm:~1.0.4": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" @@ -18994,15 +19047,51 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": - version: 1.0.6 - resolution: "side-channel@npm:1.0.6" +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" dependencies: - call-bind: ^1.0.7 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - object-inspect: ^1.13.1 - checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 + object-inspect: ^1.13.3 + checksum: 603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + checksum: 42501371cdf71f4ccbbc9c9e2eb00aaaab80a4c1c429d5e8da713fd4d39ef3b8d4a4b37ed4f275798a65260a551a7131fd87fe67e922dba4ac18586d6aab8b06 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + side-channel-map: ^1.0.1 + checksum: a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.6, side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + side-channel-list: ^1.0.0 + side-channel-map: ^1.0.1 + side-channel-weakmap: ^1.0.2 + checksum: bf73d6d6682034603eb8e99c63b50155017ed78a522d27c2acec0388a792c3ede3238b878b953a08157093b85d05797217d270b7666ba1f111345fbe933380ff languageName: node linkType: hard @@ -19179,14 +19268,14 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^8.0.2, socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.4": - version: 8.0.4 - resolution: "socks-proxy-agent@npm:8.0.4" +"socks-proxy-agent@npm:^8.0.2, socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.5": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" dependencies: - agent-base: ^7.1.1 + agent-base: ^7.1.2 debug: ^4.3.4 socks: ^2.8.3 - checksum: b2ec5051d85fe49072f9a250c427e0e9571fd09d5db133819192d078fd291276e1f0f50f6dbc04329b207738b1071314cee8bdbb4b12e27de42dbcf1d4233c67 + checksum: b4fbcdb7ad2d6eec445926e255a1fb95c975db0020543fbac8dfa6c47aecc6b3b619b7fb9c60a3f82c9b2969912a5e7e174a056ae4d98cb5322f3524d6036e1d languageName: node linkType: hard @@ -19557,9 +19646,9 @@ __metadata: languageName: node linkType: hard -"streamx@npm:^2.15.0, streamx@npm:^2.20.0": - version: 2.21.0 - resolution: "streamx@npm:2.21.0" +"streamx@npm:^2.15.0, streamx@npm:^2.21.0": + version: 2.21.1 + resolution: "streamx@npm:2.21.1" dependencies: bare-events: ^2.2.0 fast-fifo: ^1.3.2 @@ -19568,7 +19657,7 @@ __metadata: dependenciesMeta: bare-events: optional: true - checksum: 2a15fdeba6b29deca67cf047f719647397c269a7bbbc07043a5a619cddf72d990632d17a70212a1beafb14cea62761fd81d2ccaad3171c8b1d0cb810ea09a060 + checksum: 98abdd0a926b172be6f2b306cdda3d8689a4da51e478518aa187d321ceca31ebfcbfff222c55ef4140fdc2a5c14da5db9da19fdfd7a08bcdcb0c1c6e6df96f22 languageName: node linkType: hard @@ -19640,26 +19729,30 @@ __metadata: languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.9": - version: 1.2.9 - resolution: "string.prototype.trim@npm:1.2.9" +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-data-property: ^1.1.4 define-properties: ^1.2.1 - es-abstract: ^1.23.0 + es-abstract: ^1.23.5 es-object-atoms: ^1.0.0 - checksum: ea2df6ec1e914c9d4e2dc856fa08228e8b1be59b59e50b17578c94a66a176888f417264bb763d4aac638ad3b3dad56e7a03d9317086a178078d131aa293ba193 + has-property-descriptors: ^1.0.2 + checksum: 87659cd8561237b6c69f5376328fda934693aedde17bb7a2c57008e9d9ff992d0c253a391c7d8d50114e0e49ff7daf86a362f7961cf92f7564cd01342ca2e385 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimend@npm:1.0.8" +"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.2 define-properties: ^1.2.1 es-object-atoms: ^1.0.0 - checksum: cc3bd2de08d8968a28787deba9a3cb3f17ca5f9f770c91e7e8fa3e7d47f079bad70fadce16f05dda9f261788be2c6e84a942f618c3bed31e42abc5c1084f8dfd + checksum: cb86f639f41d791a43627784be2175daa9ca3259c7cb83e7a207a729909b74f2ea0ec5d85de5761e6835e5f443e9420c6ff3f63a845378e4a61dd793177bc287 languageName: node linkType: hard @@ -19943,7 +20036,7 @@ __metadata: languageName: node linkType: hard -"tar-fs@npm:^3.0.6": +"tar-fs@npm:^3.0.4": version: 3.0.6 resolution: "tar-fs@npm:3.0.6" dependencies: @@ -20096,14 +20189,14 @@ __metadata: linkType: hard "terser-webpack-plugin@npm:^5.3.10": - version: 5.3.10 - resolution: "terser-webpack-plugin@npm:5.3.10" + version: 5.3.11 + resolution: "terser-webpack-plugin@npm:5.3.11" dependencies: - "@jridgewell/trace-mapping": ^0.3.20 + "@jridgewell/trace-mapping": ^0.3.25 jest-worker: ^27.4.5 - schema-utils: ^3.1.1 - serialize-javascript: ^6.0.1 - terser: ^5.26.0 + schema-utils: ^4.3.0 + serialize-javascript: ^6.0.2 + terser: ^5.31.1 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -20113,11 +20206,11 @@ __metadata: optional: true uglify-js: optional: true - checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea + checksum: c84c005d4041ad2e2eed0c9059b52a50ffd27f1e2afca7d34864a2b4b2bb1295405bc7578eeb25bae732e358339954d8cb6fbf6d83df52e8aa9333e8bf409ebe languageName: node linkType: hard -"terser@npm:^5.10.0, terser@npm:^5.15.0, terser@npm:^5.15.1, terser@npm:^5.26.0": +"terser@npm:^5.10.0, terser@npm:^5.15.0, terser@npm:^5.15.1, terser@npm:^5.31.1": version: 5.37.0 resolution: "terser@npm:5.37.0" dependencies: @@ -20143,11 +20236,11 @@ __metadata: linkType: hard "text-decoder@npm:^1.1.0": - version: 1.2.2 - resolution: "text-decoder@npm:1.2.2" + version: 1.2.3 + resolution: "text-decoder@npm:1.2.3" dependencies: b4a: ^1.6.4 - checksum: d10aa26e8376a13171fafe0d9a093f3302146c330433331b7e81439f848b0cb031052fa765aba1d1f52cf521cefc1d269360e4c061e6aa41129bfa4ab487d36c + checksum: d7642a61f9d72330eac52ff6b6e8d34dea03ebbb1e82749a8734e7892e246cf262ed70730d20c4351c5dc5334297b9cc6c0b6a8725a204a63a197d7728bb35e5 languageName: node linkType: hard @@ -20353,15 +20446,6 @@ __metadata: languageName: node linkType: hard -"trouter@npm:^2.0.1": - version: 2.0.1 - resolution: "trouter@npm:2.0.1" - dependencies: - matchit: ^1.0.0 - checksum: 4a25e81a132d75e8659a29c4b1f6a91eff06601a78a9d1fc189d525ad0298881ed7db7a82045a3b7d1fcc52cb283d2ca7b79eb908de02088798de36659d5205c - languageName: node - linkType: hard - "true-case-path@npm:^2.2.1": version: 2.2.1 resolution: "true-case-path@npm:2.2.1" @@ -20644,46 +20728,46 @@ __metadata: languageName: node linkType: hard -"typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-typed-array: ^1.1.13 - checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + is-typed-array: ^1.1.14 + checksum: 3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 languageName: node linkType: hard -"typed-array-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-byte-length@npm:1.0.1" +"typed-array-byte-length@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 for-each: ^0.3.3 - gopd: ^1.0.1 - has-proto: ^1.0.3 - is-typed-array: ^1.1.13 - checksum: f65e5ecd1cf76b1a2d0d6f631f3ea3cdb5e08da106c6703ffe687d583e49954d570cc80434816d3746e18be889ffe53c58bf3e538081ea4077c26a41055b216d + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.14 + checksum: cda9352178ebeab073ad6499b03e938ebc30c4efaea63a26839d89c4b1da9d2640b0d937fc2bd1f049eb0a38def6fbe8a061b601292ae62fe079a410ce56e3a6 languageName: node linkType: hard -"typed-array-byte-offset@npm:^1.0.2": - version: 1.0.3 - resolution: "typed-array-byte-offset@npm:1.0.3" +"typed-array-byte-offset@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-byte-offset@npm:1.0.4" dependencies: available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 + call-bind: ^1.0.8 for-each: ^0.3.3 - gopd: ^1.0.1 - has-proto: ^1.0.3 - is-typed-array: ^1.1.13 - reflect.getprototypeof: ^1.0.6 - checksum: 36728daa80d49a9fa51cd3f0f2b037613f4574666fd4473bd37ac123d7f6f81ea68ff45424c1e2673257964e10bedeb3ebfce73532672913ebbe446999912303 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.15 + reflect.getprototypeof: ^1.0.9 + checksum: 670b7e6bb1d3c2cf6160f27f9f529e60c3f6f9611c67e47ca70ca5cfa24ad95415694c49d1dbfeda016d3372cab7dfc9e38c7b3e1bb8d692cae13a63d3c144d7 languageName: node linkType: hard -"typed-array-length@npm:^1.0.6": +"typed-array-length@npm:^1.0.7": version: 1.0.7 resolution: "typed-array-length@npm:1.0.7" dependencies: @@ -20830,15 +20914,15 @@ __metadata: languageName: node linkType: hard -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" +"unbox-primitive@npm:^1.1.0": + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" dependencies: - call-bind: ^1.0.2 + call-bound: ^1.0.3 has-bigints: ^1.0.2 - has-symbols: ^1.0.3 - which-boxed-primitive: ^1.0.2 - checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + has-symbols: ^1.1.0 + which-boxed-primitive: ^1.1.1 + checksum: 729f13b84a5bfa3fead1d8139cee5c38514e63a8d6a437819a473e241ba87eeb593646568621c7fc7f133db300ef18d65d1a5a60dc9c7beb9000364d93c581df languageName: node linkType: hard @@ -20880,13 +20964,6 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.19.2": - version: 6.19.8 - resolution: "undici-types@npm:6.19.8" - checksum: de51f1b447d22571cf155dfe14ff6d12c5bdaec237c765085b439c38ca8518fc360e88c70f99469162bf2e14188a7b0bcb06e1ed2dc031042b984b0bb9544017 - languageName: node - linkType: hard - "undici-types@npm:~6.20.0": version: 6.20.0 resolution: "undici-types@npm:6.20.0" @@ -21016,7 +21093,7 @@ __metadata: languageName: node linkType: hard -"unzipper@npm:^0.10.11": +"unzipper@npm:^0.10.11, unzipper@npm:^0.10.14": version: 0.10.14 resolution: "unzipper@npm:0.10.14" dependencies: @@ -21035,16 +21112,16 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.1.1": - version: 1.1.1 - resolution: "update-browserslist-db@npm:1.1.1" + version: 1.1.2 + resolution: "update-browserslist-db@npm:1.1.2" dependencies: escalade: ^3.2.0 - picocolors: ^1.1.0 + picocolors: ^1.1.1 peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 2ea11bd2562122162c3e438d83a1f9125238c0844b6d16d366e3276d0c0acac6036822dc7df65fc5a89c699cdf9f174acf439c39bedf3f9a2f3983976e4b4c3e + checksum: 088d2bad8ddeaeccd82d87d3f6d736d5256d697b725ffaa2b601dfd0ec16ba5fad20db8dcdccf55396e1a36194236feb69e3f5cce772e5be15a5e4261ff2815d languageName: node linkType: hard @@ -21143,7 +21220,7 @@ __metadata: languageName: node linkType: hard -"uuid@npm:10.0, uuid@npm:^10.0.0": +"uuid@npm:10.0.0": version: 10.0.0 resolution: "uuid@npm:10.0.0" bin: @@ -21152,21 +21229,12 @@ __metadata: languageName: node linkType: hard -"uuid@npm:9.0.0": - version: 9.0.0 - resolution: "uuid@npm:9.0.0" - bin: - uuid: dist/bin/uuid - checksum: 8dd2c83c43ddc7e1c71e36b60aea40030a6505139af6bee0f382ebcd1a56f6cd3028f7f06ffb07f8cf6ced320b76aea275284b224b002b289f89fe89c389b028 - languageName: node - linkType: hard - -"uuid@npm:9.0.1, uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" +"uuid@npm:11.0": + version: 11.0.4 + resolution: "uuid@npm:11.0.4" bin: - uuid: dist/bin/uuid - checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 + uuid: dist/esm/bin/uuid + checksum: 88860d20dafa648642581b2e7bb364588149df50d41c812100839aec095593fcc8548fde6929605efd42f556455cf5683e3bad9e9e311f4b62d7efbb68598d3e languageName: node linkType: hard @@ -21188,6 +21256,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^9.0.0": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 + languageName: node + linkType: hard + "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -21323,53 +21400,53 @@ __metadata: languageName: node linkType: hard -"webdriver@npm:7.33.0": - version: 7.33.0 - resolution: "webdriver@npm:7.33.0" +"webdriver@npm:7.40.0": + version: 7.40.0 + resolution: "webdriver@npm:7.40.0" dependencies: "@types/node": ^18.0.0 - "@wdio/config": 7.33.0 + "@wdio/config": 7.40.0 "@wdio/logger": 7.26.0 "@wdio/protocols": 7.27.0 - "@wdio/types": 7.33.0 - "@wdio/utils": 7.33.0 + "@wdio/types": 7.40.0 + "@wdio/utils": 7.40.0 got: ^11.0.2 ky: 0.30.0 lodash.merge: ^4.6.1 - checksum: 4e43df0df7c59ed29b644d3fabf16aa2f67d77fe4474fc12d8a1971061bc8fefacc092ab07c2d4807ef157e2e6d1236f4745d9996c40dd37dc69ccc10f4af58e + checksum: 93698f1fb7694f726d84dd42bd0190b31a272278bc37f1ffeba19bb4aa398d9adbac12884e89189cdda31009ea89e3265b7ecd250bf4e9a3ef2689eb43020373 languageName: node linkType: hard -"webdriver@npm:8.40.6": - version: 8.40.6 - resolution: "webdriver@npm:8.40.6" +"webdriver@npm:8.41.0": + version: 8.41.0 + resolution: "webdriver@npm:8.41.0" dependencies: "@types/node": ^22.2.0 "@types/ws": ^8.5.3 - "@wdio/config": 8.40.6 + "@wdio/config": 8.41.0 "@wdio/logger": 8.38.0 "@wdio/protocols": 8.40.3 - "@wdio/types": 8.40.6 - "@wdio/utils": 8.40.6 + "@wdio/types": 8.41.0 + "@wdio/utils": 8.41.0 deepmerge-ts: ^5.1.0 got: ^12.6.1 ky: ^0.33.0 ws: ^8.8.0 - checksum: f35a0f8daa4503537653af90ab91d4c2991dc37b085c35210baf369e83fbde1d45526bc03ee253d1cd26e3621caedda4b173f60f94d3f4d37284295f1f3780a4 + checksum: 3be3b89f30fb4ab8fb0b5ea4395bbef612f4bb97925478b250835e2ee1993f4ac46fa4060009adb6452d5c543412e1530c234f7a4af4a885d8ef17b835d01d67 languageName: node linkType: hard -"webdriverio@npm:8.40.6": - version: 8.40.6 - resolution: "webdriverio@npm:8.40.6" +"webdriverio@npm:8.41.0": + version: 8.41.0 + resolution: "webdriverio@npm:8.41.0" dependencies: "@types/node": ^22.2.0 - "@wdio/config": 8.40.6 + "@wdio/config": 8.41.0 "@wdio/logger": 8.38.0 "@wdio/protocols": 8.40.3 "@wdio/repl": 8.40.3 - "@wdio/types": 8.40.6 - "@wdio/utils": 8.40.6 + "@wdio/types": 8.41.0 + "@wdio/utils": 8.41.0 archiver: ^7.0.0 aria-query: ^5.0.0 css-shorthand-properties: ^1.1.1 @@ -21387,33 +21464,33 @@ __metadata: resq: ^1.9.1 rgb2hex: 0.2.5 serialize-error: ^11.0.1 - webdriver: 8.40.6 + webdriver: 8.41.0 peerDependencies: devtools: ^8.14.0 peerDependenciesMeta: devtools: optional: true - checksum: 0f350180ae11f5db70d815a47a81da8006703f09159f3b7114d0f629945e5b84f7e95d4dbad2d22bbba943f06c38c69f0d6393b7f49e702a58e22963ae9ef429 + checksum: dd8c2406d866672a21007df5d46588f596b551d42f1e5f7ce5d7019436555f581b004d994d79424d8e71f8c35b33bd4ab0bd425b8229381cf00ccddff8526e72 languageName: node linkType: hard "webdriverio@npm:^7.19.7": - version: 7.36.0 - resolution: "webdriverio@npm:7.36.0" + version: 7.40.0 + resolution: "webdriverio@npm:7.40.0" dependencies: "@types/aria-query": ^5.0.0 "@types/node": ^18.0.0 - "@wdio/config": 7.33.0 + "@wdio/config": 7.40.0 "@wdio/logger": 7.26.0 "@wdio/protocols": 7.27.0 - "@wdio/repl": 7.33.0 - "@wdio/types": 7.33.0 - "@wdio/utils": 7.33.0 + "@wdio/repl": 7.40.0 + "@wdio/types": 7.40.0 + "@wdio/utils": 7.40.0 archiver: ^5.0.0 aria-query: ^5.2.1 css-shorthand-properties: ^1.1.1 css-value: ^0.0.1 - devtools: 7.35.0 + devtools: 7.40.0 devtools-protocol: ^0.0.1260888 fs-extra: ^11.1.1 grapheme-splitter: ^1.0.2 @@ -21427,8 +21504,8 @@ __metadata: resq: ^1.9.1 rgb2hex: 0.2.5 serialize-error: ^8.0.0 - webdriver: 7.33.0 - checksum: c973d83f9160aa5294a21974f1f6fb536461770fb162c140ccbf11d1960b28c1928609dde36600c2040480f02512b089ea66f453a0451e15915999bbbce805ee + webdriver: 7.40.0 + checksum: 842c34389b8938bc54f197f1731f7bcd5569355584a86d4aee7737f0c197fea72e0c529cbe29d4fbb1563f8176c7a7838a73792b19b68898b9e478e485dd9d50 languageName: node linkType: hard @@ -21608,37 +21685,37 @@ __metadata: languageName: node linkType: hard -"which-boxed-primitive@npm:^1.0.2": - version: 1.1.0 - resolution: "which-boxed-primitive@npm:1.1.0" +"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" dependencies: is-bigint: ^1.1.0 - is-boolean-object: ^1.2.0 - is-number-object: ^1.1.0 - is-string: ^1.1.0 - is-symbol: ^1.1.0 - checksum: 49ebec9693ed21ee8183b9e353ee7134a03722776c84624019964124885a4a940f469af3d1508ad83022a68cc515aecbef70fb1256ace57a871c43d24d050304 + is-boolean-object: ^1.2.1 + is-number-object: ^1.1.1 + is-string: ^1.1.1 + is-symbol: ^1.1.1 + checksum: ee41d0260e4fd39551ad77700c7047d3d281ec03d356f5e5c8393fe160ba0db53ef446ff547d05f76ffabfd8ad9df7c9a827e12d4cccdbc8fccf9239ff8ac21e languageName: node linkType: hard -"which-builtin-type@npm:^1.2.0": - version: 1.2.0 - resolution: "which-builtin-type@npm:1.2.0" +"which-builtin-type@npm:^1.2.1": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.2 function.prototype.name: ^1.1.6 has-tostringtag: ^1.0.2 is-async-function: ^2.0.0 - is-date-object: ^1.0.5 + is-date-object: ^1.1.0 is-finalizationregistry: ^1.1.0 is-generator-function: ^1.0.10 - is-regex: ^1.1.4 + is-regex: ^1.2.1 is-weakref: ^1.0.2 isarray: ^2.0.5 - which-boxed-primitive: ^1.0.2 + which-boxed-primitive: ^1.1.0 which-collection: ^1.0.2 - which-typed-array: ^1.1.15 - checksum: 6d40ecdf33a28c3fdeab13e7e3b4289fb51f7ebd0983e628d50fa42e113d8be1bc7dd0e6eb23c6b6a0c2c0c7667763eca3a2af1f6d768e48efba8073870eb568 + which-typed-array: ^1.1.16 + checksum: 7a3617ba0e7cafb795f74db418df889867d12bce39a477f3ee29c6092aa64d396955bf2a64eae3726d8578440e26777695544057b373c45a8bcf5fbe920bf633 languageName: node linkType: hard @@ -21661,16 +21738,17 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": - version: 1.1.16 - resolution: "which-typed-array@npm:1.1.16" +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18": + version: 1.1.18 + resolution: "which-typed-array@npm:1.1.18" dependencies: available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 for-each: ^0.3.3 - gopd: ^1.0.1 + gopd: ^1.2.0 has-tostringtag: ^1.0.2 - checksum: 903d398ec234d608011e1df09af6c004e66965bb24d5e1a82856cba0495fa6389ae393d1c9d5411498a9cba8e61b2e39a8e8be7b3005cbeadd317f772b1bdaef + checksum: d2feea7f51af66b3a240397aa41c796585033e1069f18e5b6d4cd3878538a1e7780596fd3ea9bf347c43d9e98e13be09b37d9ea3887cef29b11bc291fd47bb52 languageName: node linkType: hard @@ -21972,11 +22050,11 @@ __metadata: linkType: hard "yaml@npm:^2.2.1": - version: 2.6.1 - resolution: "yaml@npm:2.6.1" + version: 2.7.0 + resolution: "yaml@npm:2.7.0" bin: yaml: bin.mjs - checksum: 5cf2627f121dcf04ccdebce8e6cbac7c9983d465c4eab314f6fbdc13cda8a07f4e8f9c2252a382b30bcabe05ee3c683647293afd52eb37cbcefbdc7b6ebde9ee + checksum: 6e8b2f9b9d1b18b10274d58eb3a47ec223d9a93245a890dcb34d62865f7e744747190a9b9177d5f0ef4ea2e44ad2c0214993deb42e0800766203ac46f00a12dd languageName: node linkType: hard