@ukhomeoffice/cop-react-form-renderer 5.90.0 → 5.90.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +15 -15
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +106 -142
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +563 -941
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +76 -66
- package/dist/components/CollectionPage/CollectionPage.test.js +318 -369
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +15 -15
- package/dist/components/CollectionSummary/BannerStrip.test.js +83 -79
- package/dist/components/CollectionSummary/CollectionSummary.js +109 -131
- package/dist/components/CollectionSummary/CollectionSummary.test.js +198 -180
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +47 -55
- package/dist/components/CollectionSummary/RenderListView.test.js +82 -81
- package/dist/components/CollectionSummary/SummaryCard.js +121 -157
- package/dist/components/CollectionSummary/SummaryCard.test.js +970 -1000
- package/dist/components/CollectionSummary/SummaryCardDetails.js +103 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +187 -195
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +64 -76
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +81 -117
- package/dist/components/FormComponent/Collection.test.js +910 -1082
- package/dist/components/FormComponent/Container.js +43 -38
- package/dist/components/FormComponent/Container.test.js +379 -411
- package/dist/components/FormComponent/FormComponent.js +71 -74
- package/dist/components/FormComponent/FormComponent.test.js +354 -415
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
- package/dist/components/FormComponent/helpers/index.js +5 -5
- package/dist/components/FormComponent/index.js +1 -1
- package/dist/components/FormPage/FormPage.js +71 -87
- package/dist/components/FormPage/FormPage.test.js +133 -170
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +153 -198
- package/dist/components/FormRenderer/FormRenderer.test.js +731 -1116
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
- package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
- package/dist/components/FormRenderer/handlers/index.js +2 -2
- package/dist/components/FormRenderer/handlers/navigate.js +4 -4
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +27 -30
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -7
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +18 -32
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +8 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +12 -13
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +65 -64
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +61 -54
- package/dist/components/FormRenderer/onCYAAction.test.js +165 -153
- package/dist/components/FormRenderer/onPageAction.js +45 -41
- package/dist/components/FormRenderer/onPageAction.test.js +225 -210
- package/dist/components/FormRenderer/onTaskAction.js +11 -15
- package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
- package/dist/components/PageActions/ActionButton.js +13 -16
- package/dist/components/PageActions/ActionButton.test.js +57 -79
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +87 -116
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +13 -21
- package/dist/components/SummaryList/GroupAction.test.js +41 -37
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +41 -37
- package/dist/components/SummaryList/SummaryList.js +23 -28
- package/dist/components/SummaryList/SummaryList.test.js +179 -206
- package/dist/components/SummaryList/SummaryListHeadingRow.js +8 -6
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +8 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +7 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +4 -6
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +4 -6
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +1 -1
- package/dist/components/TaskList/Task.js +20 -30
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +53 -84
- package/dist/components/TaskList/TaskList.test.js +150 -150
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +56 -49
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +58 -81
- package/dist/context/HooksContext/HooksContext.test.js +27 -36
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +44 -95
- package/dist/context/ValidationContext/ValidationContext.test.js +58 -70
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +15 -41
- package/dist/hooks/useGetRequest.js +62 -98
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +28 -41
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +14 -15
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +10 -10
- package/dist/setupTests.js +31 -32
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +17 -27
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +34 -36
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +20 -34
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +43 -45
- package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -25
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +39 -45
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +100 -105
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +218 -182
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +26 -21
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +15 -21
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +13 -13
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +14 -19
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +6 -6
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -3
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +21 -22
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +15 -24
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +52 -43
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +3 -3
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -12
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -13
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +25 -26
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -32
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +18 -22
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +37 -42
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -22
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +13 -19
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +26 -26
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +19 -20
- package/dist/utils/Component/applyToComponentTree.test.js +28 -33
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -7
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +90 -97
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +50 -63
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +30 -40
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +22 -27
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +12 -11
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +34 -41
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +23 -32
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
- package/dist/utils/Component/getDefaultValue.js +7 -9
- package/dist/utils/Component/getDefaultValue.test.js +13 -13
- package/dist/utils/Component/getDefaultValueFromConfig.js +24 -24
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
- package/dist/utils/Component/index.js +2 -2
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -4
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +29 -31
- package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
- package/dist/utils/Component/showComponent.js +3 -4
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +4 -4
- package/dist/utils/Condition/index.js +2 -2
- package/dist/utils/Condition/meetsAllConditions.js +9 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
- package/dist/utils/Condition/meetsCondition.js +20 -31
- package/dist/utils/Condition/meetsCondition.test.js +403 -403
- package/dist/utils/Condition/meetsOneCondition.js +6 -6
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +14 -19
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +4 -6
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +16 -22
- package/dist/utils/Container/setupNesting.test.js +28 -31
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +40 -50
- package/dist/utils/Data/applyFormula.test.js +26 -26
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +20 -29
- package/dist/utils/Data/getAutocompleteSource.test.js +81 -87
- package/dist/utils/Data/getDataPath.js +20 -30
- package/dist/utils/Data/getDataPath.test.js +20 -20
- package/dist/utils/Data/getOptions.js +27 -34
- package/dist/utils/Data/getOptions.test.js +28 -28
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +9 -16
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +11 -15
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +14 -22
- package/dist/utils/Data/setupFormData.test.js +52 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +21 -28
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
- package/dist/utils/FormPage/applyConditionalProperties.js +6 -10
- package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +35 -35
- package/dist/utils/FormPage/getFormPage.js +16 -17
- package/dist/utils/FormPage/getFormPage.test.js +49 -48
- package/dist/utils/FormPage/getFormPages.js +8 -13
- package/dist/utils/FormPage/getFormPages.test.js +22 -25
- package/dist/utils/FormPage/getPageActions.js +10 -17
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -5
- package/dist/utils/FormPage/showFormPage.js +4 -8
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +3 -3
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +78 -80
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -7
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +29 -32
- package/dist/utils/Hub/index.js +2 -2
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -4
- package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +15 -17
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +4 -4
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +3 -3
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +8 -8
- package/dist/utils/Operate/getFirstOf.test.js +33 -33
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +12 -12
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +11 -11
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +6 -6
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +9 -9
- package/dist/utils/Operate/runPageOperations.test.js +36 -37
- package/dist/utils/Operate/setValueInFormData.js +5 -5
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +8 -8
- package/dist/utils/Operate/shouldRun.test.js +22 -28
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -5
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -8
- package/dist/utils/Validate/additional/index.test.js +22 -22
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +9 -14
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +38 -42
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +4 -4
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +36 -40
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +3 -5
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +3 -5
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +11 -24
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +21 -27
- package/dist/utils/Validate/validateCollection.test.js +85 -77
- package/dist/utils/Validate/validateComponent.js +22 -23
- package/dist/utils/Validate/validateComponent.test.js +188 -165
- package/dist/utils/Validate/validateContainer.js +16 -21
- package/dist/utils/Validate/validateContainer.test.js +62 -56
- package/dist/utils/Validate/validateDate.js +17 -23
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +26 -26
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +20 -24
- package/dist/utils/Validate/validatePage.test.js +227 -215
- package/dist/utils/Validate/validateRegex.js +5 -8
- package/dist/utils/Validate/validateRegex.test.js +17 -17
- package/dist/utils/Validate/validateRequired.js +5 -7
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +5 -7
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +12 -19
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +8 -10
- package/package.json +3 -2
|
@@ -7,14 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _FormComponent = _interopRequireDefault(require("../../components/FormComponent"));
|
|
9
9
|
var _getCYAAction = _interopRequireDefault(require("./getCYAAction"));
|
|
10
|
-
function _interopRequireDefault(
|
|
11
|
-
|
|
12
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
16
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
17
|
-
var getRowValue = function getRowValue(row) {
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const getRowValue = row => {
|
|
18
12
|
if (!row.value) {
|
|
19
13
|
return null;
|
|
20
14
|
}
|
|
@@ -24,43 +18,43 @@ var getRowValue = function getRowValue(row) {
|
|
|
24
18
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
25
19
|
key: row.id
|
|
26
20
|
}, /*#__PURE__*/_react.default.createElement(_FormComponent.default, {
|
|
27
|
-
component:
|
|
21
|
+
component: {
|
|
22
|
+
...row.component,
|
|
28
23
|
readonly: true
|
|
29
|
-
}
|
|
24
|
+
},
|
|
30
25
|
wrap: false,
|
|
31
26
|
value: row.value
|
|
32
27
|
}));
|
|
33
28
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return r.id === componentId;
|
|
39
|
-
});
|
|
29
|
+
const getGroupValue = (group, rows) => {
|
|
30
|
+
let firstComponentIndex = -1;
|
|
31
|
+
const value = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, group.components.map(componentId => {
|
|
32
|
+
const rowIndex = rows.findIndex(r => r.id === componentId);
|
|
40
33
|
if (firstComponentIndex < 0) {
|
|
41
34
|
firstComponentIndex = rowIndex;
|
|
42
35
|
}
|
|
43
36
|
return rowIndex > -1 ? getRowValue(rows[rowIndex]) : null;
|
|
44
37
|
}));
|
|
45
38
|
return {
|
|
46
|
-
value
|
|
47
|
-
firstComponentIndex
|
|
39
|
+
value,
|
|
40
|
+
firstComponentIndex
|
|
48
41
|
};
|
|
49
42
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
value
|
|
53
|
-
firstComponentIndex
|
|
54
|
-
|
|
43
|
+
const getCYARowForGroup = (page, group, rows, onAction) => {
|
|
44
|
+
const {
|
|
45
|
+
value,
|
|
46
|
+
firstComponentIndex
|
|
47
|
+
} = getGroupValue(group, rows);
|
|
48
|
+
const row = {
|
|
55
49
|
pageId: page.id,
|
|
56
50
|
fieldId: group.id,
|
|
57
51
|
key: group.label,
|
|
58
52
|
required: group.required,
|
|
59
|
-
value
|
|
53
|
+
value,
|
|
60
54
|
action: (0, _getCYAAction.default)(false, page, onAction)
|
|
61
55
|
};
|
|
62
56
|
return {
|
|
63
|
-
row
|
|
57
|
+
row,
|
|
64
58
|
insertAt: firstComponentIndex
|
|
65
59
|
};
|
|
66
60
|
};
|
|
@@ -3,38 +3,38 @@
|
|
|
3
3
|
var _setupTests = require("../../setupTests");
|
|
4
4
|
var _getCYARowForGroup = _interopRequireDefault(require("./getCYARowForGroup"));
|
|
5
5
|
var _getCYARow = _interopRequireDefault(require("./getCYARow"));
|
|
6
|
-
function _interopRequireDefault(
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
7
|
// Local imports
|
|
8
8
|
|
|
9
|
-
describe('utils',
|
|
10
|
-
describe('CheckYourAnswers',
|
|
11
|
-
describe('getCYARowsForGroup',
|
|
12
|
-
it('should check address values block',
|
|
13
|
-
|
|
9
|
+
describe('utils', () => {
|
|
10
|
+
describe('CheckYourAnswers', () => {
|
|
11
|
+
describe('getCYARowsForGroup', () => {
|
|
12
|
+
it('should check address values block', () => {
|
|
13
|
+
const COMPONENT_ADDRESS = {
|
|
14
14
|
id: 'firstLineOfTheAddress',
|
|
15
15
|
fieldId: 'firstLineOfTheAddress',
|
|
16
16
|
label: 'address',
|
|
17
17
|
type: 'text'
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
const COMPONENT_TOWN = {
|
|
20
20
|
id: 'town',
|
|
21
21
|
fieldId: 'town',
|
|
22
22
|
label: 'Town',
|
|
23
23
|
type: 'text'
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
const COMPONENT_CITY = {
|
|
26
26
|
id: 'city',
|
|
27
27
|
fieldId: 'city',
|
|
28
28
|
label: 'City',
|
|
29
29
|
type: 'text'
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
const COMPONENT_POSTCODE = {
|
|
32
32
|
id: 'postCode',
|
|
33
33
|
fieldId: 'postCode',
|
|
34
34
|
label: 'postCode',
|
|
35
35
|
type: 'text'
|
|
36
36
|
};
|
|
37
|
-
|
|
37
|
+
const PAGE = {
|
|
38
38
|
components: [COMPONENT_ADDRESS, COMPONENT_TOWN, COMPONENT_CITY, COMPONENT_POSTCODE],
|
|
39
39
|
id: 'addressDetails',
|
|
40
40
|
fieldId: 'UK address',
|
|
@@ -52,14 +52,13 @@ describe('utils', function () {
|
|
|
52
52
|
postCode: 'SW1A 2AA'
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
container = _renderWithValidation.container;
|
|
55
|
+
const ON_ACTION = () => {};
|
|
56
|
+
const rows = PAGE.components.map(component => (0, _getCYARow.default)(PAGE, component, ON_ACTION));
|
|
57
|
+
const {
|
|
58
|
+
container
|
|
59
|
+
} = (0, _setupTests.renderWithValidation)((0, _getCYARowForGroup.default)(PAGE, PAGE.groups[0], rows, ON_ACTION).row.value);
|
|
61
60
|
expect(container.childNodes.length).toEqual(4);
|
|
62
|
-
|
|
61
|
+
const addressValues = container.childNodes;
|
|
63
62
|
expect(addressValues[0].childNodes[0].textContent).toEqual('10 Downing Street');
|
|
64
63
|
expect(addressValues[1].childNodes[0].textContent).toEqual('City of Westminster');
|
|
65
64
|
expect(addressValues[2].childNodes[0].textContent).toEqual('London');
|
|
@@ -10,67 +10,61 @@ var _getCYAAction = _interopRequireDefault(require("./getCYAAction"));
|
|
|
10
10
|
var _getCYARowsForContainer = _interopRequireDefault(require("./getCYARowsForContainer"));
|
|
11
11
|
var _setupContainerComponentsPath = _interopRequireDefault(require("../Component/setupContainerComponentsPath"));
|
|
12
12
|
var _showComponentCYA = _interopRequireDefault(require("./showComponentCYA"));
|
|
13
|
-
function _interopRequireDefault(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
19
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Global imports
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
// Global imports
|
|
15
|
+
|
|
20
16
|
// Local imports
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
17
|
+
|
|
18
|
+
const getEntryToCollectionRow = (page, onAction) => [{
|
|
19
|
+
pageId: page.id,
|
|
20
|
+
key: page.components[0].labels?.empty || 'Nothing entered',
|
|
21
|
+
required: page.required,
|
|
22
|
+
action: (0, _getCYAAction.default)(false, page, onAction)
|
|
23
|
+
}];
|
|
24
|
+
const getContainerForItem = (collection, item, labelCount, fullPath) => ({
|
|
25
|
+
id: item.id,
|
|
26
|
+
fieldId: item.id,
|
|
27
|
+
type: _models.ComponentTypes.CONTAINER,
|
|
28
|
+
required: collection.required,
|
|
29
|
+
full_path: fullPath,
|
|
30
|
+
components: collection.item.map(component => ({
|
|
31
|
+
...component,
|
|
32
|
+
label: _copReactComponents.Utils.interpolateString(component.label, {
|
|
33
|
+
...item,
|
|
34
|
+
index: labelCount
|
|
35
|
+
}),
|
|
36
|
+
full_path: `${fullPath}.${component.fieldId}`
|
|
37
|
+
}))
|
|
38
|
+
});
|
|
39
|
+
const getTitleRowForItem = (collection, item, pageId, labelCount, fullPath) => {
|
|
40
|
+
const labels = {
|
|
41
|
+
..._models.CollectionLabels,
|
|
42
|
+
...collection.labels
|
|
45
43
|
};
|
|
46
|
-
};
|
|
47
|
-
var getTitleRowForItem = function getTitleRowForItem(collection, item, pageId, labelCount, fullPath) {
|
|
48
|
-
var labels = _objectSpread(_objectSpread({}, _models.CollectionLabels), collection.labels);
|
|
49
44
|
if (labels.item) {
|
|
50
45
|
return {
|
|
51
|
-
pageId
|
|
46
|
+
pageId,
|
|
52
47
|
fieldId: collection.fieldId,
|
|
53
48
|
full_path: fullPath,
|
|
54
|
-
key: _copReactComponents.Utils.interpolateString(labels.item,
|
|
49
|
+
key: _copReactComponents.Utils.interpolateString(labels.item, {
|
|
50
|
+
...item,
|
|
55
51
|
index: labelCount
|
|
56
|
-
})
|
|
52
|
+
}),
|
|
57
53
|
type: 'title',
|
|
58
54
|
action: null
|
|
59
55
|
};
|
|
60
56
|
}
|
|
61
57
|
return null;
|
|
62
58
|
};
|
|
63
|
-
|
|
59
|
+
const getCYARowsForCollection = (page, collection, items, onAction, fnOverride) => {
|
|
64
60
|
if (Array.isArray(items) && items.length && (0, _showComponentCYA.default)(collection, page.formData)) {
|
|
65
|
-
return items.flatMap(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
return items.flatMap((item, index) => {
|
|
62
|
+
const labelCount = (collection.countOffset || 0) + index + 1;
|
|
63
|
+
const fullPath = `${collection.full_path || collection.fieldId}[${index}]`;
|
|
64
|
+
let container = getContainerForItem(collection, item, labelCount, fullPath);
|
|
69
65
|
container = (0, _setupContainerComponentsPath.default)(container);
|
|
70
66
|
return [getTitleRowForItem(collection, item, page.id, labelCount, fullPath)].concat((0, _getCYARowsForContainer.default)(page, container, item, onAction, fnOverride));
|
|
71
|
-
}).filter(
|
|
72
|
-
return !!r;
|
|
73
|
-
});
|
|
67
|
+
}).filter(r => !!r);
|
|
74
68
|
}
|
|
75
69
|
return getEntryToCollectionRow(page, onAction);
|
|
76
70
|
};
|
|
@@ -3,17 +3,13 @@
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _setupTests = require("../../setupTests");
|
|
5
5
|
var _getCYARowsForCollection = _interopRequireDefault(require("./getCYARowsForCollection"));
|
|
6
|
-
function _interopRequireDefault(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
14
|
-
it('should get a single entry point row when there are no items', function () {
|
|
15
|
-
var FORM_DATA = undefined;
|
|
16
|
-
var PAGE = {
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
// Local imports
|
|
8
|
+
|
|
9
|
+
describe('utils.CheckYourAnswers.getCYARowsForCollection', () => {
|
|
10
|
+
it('should get a single entry point row when there are no items', () => {
|
|
11
|
+
const FORM_DATA = undefined;
|
|
12
|
+
const PAGE = {
|
|
17
13
|
id: 'page',
|
|
18
14
|
components: [{
|
|
19
15
|
labels: {
|
|
@@ -23,42 +19,42 @@ describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
|
23
19
|
formData: FORM_DATA,
|
|
24
20
|
cya_link: {}
|
|
25
21
|
};
|
|
26
|
-
|
|
22
|
+
const COMPONENT = {
|
|
27
23
|
type: 'text',
|
|
28
24
|
readonly: true,
|
|
29
25
|
id: 'a',
|
|
30
26
|
fieldId: 'a',
|
|
31
27
|
label: 'Alpha'
|
|
32
28
|
};
|
|
33
|
-
|
|
29
|
+
const COLLECTION = {
|
|
34
30
|
id: 'collection',
|
|
35
31
|
fieldId: 'collection',
|
|
36
32
|
type: _models.ComponentTypes.COLLECTION,
|
|
37
33
|
item: [COMPONENT]
|
|
38
34
|
};
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
const ON_ACTION = () => {};
|
|
36
|
+
const ROWS = (0, _getCYARowsForCollection.default)(PAGE, COLLECTION, undefined, ON_ACTION);
|
|
41
37
|
expect(ROWS.length).toEqual(1);
|
|
42
38
|
});
|
|
43
|
-
it('should get an appropriate row for a collection with a single readonly text component',
|
|
44
|
-
|
|
39
|
+
it('should get an appropriate row for a collection with a single readonly text component', () => {
|
|
40
|
+
const FORM_DATA = {
|
|
45
41
|
collection: [{
|
|
46
42
|
a: 'Bravo'
|
|
47
43
|
}]
|
|
48
44
|
};
|
|
49
|
-
|
|
45
|
+
const PAGE = {
|
|
50
46
|
id: 'page',
|
|
51
47
|
formData: FORM_DATA,
|
|
52
48
|
cya_link: {}
|
|
53
49
|
};
|
|
54
|
-
|
|
50
|
+
const COMPONENT = {
|
|
55
51
|
type: 'text',
|
|
56
52
|
readonly: true,
|
|
57
53
|
id: 'a',
|
|
58
54
|
fieldId: 'a',
|
|
59
55
|
label: 'Alpha'
|
|
60
56
|
};
|
|
61
|
-
|
|
57
|
+
const COLLECTION = {
|
|
62
58
|
id: 'collection',
|
|
63
59
|
fieldId: 'collection',
|
|
64
60
|
type: _models.ComponentTypes.COLLECTION,
|
|
@@ -67,13 +63,13 @@ describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
|
67
63
|
value: FORM_DATA.collection,
|
|
68
64
|
formData: FORM_DATA
|
|
69
65
|
};
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
const ON_ACTION = () => {};
|
|
67
|
+
const ROWS = (0, _getCYARowsForCollection.default)(PAGE, COLLECTION, FORM_DATA.collection, ON_ACTION);
|
|
72
68
|
expect(ROWS.length).toEqual(2); // Item title row + component row
|
|
73
69
|
(0, _setupTests.expectObjectLike)(ROWS[0], {
|
|
74
70
|
pageId: PAGE.id,
|
|
75
71
|
fieldId: COLLECTION.fieldId,
|
|
76
|
-
full_path:
|
|
72
|
+
full_path: `${COLLECTION.fieldId}[0]`,
|
|
77
73
|
key: 'Item 23',
|
|
78
74
|
// includes countOffset
|
|
79
75
|
type: 'title',
|
|
@@ -82,34 +78,35 @@ describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
|
82
78
|
(0, _setupTests.expectObjectLike)(ROWS[1], {
|
|
83
79
|
pageId: PAGE.id,
|
|
84
80
|
fieldId: COMPONENT.fieldId,
|
|
85
|
-
full_path:
|
|
81
|
+
full_path: `${COLLECTION.fieldId}[0].${COMPONENT.fieldId}`,
|
|
86
82
|
key: COMPONENT.label,
|
|
87
83
|
action: null,
|
|
88
|
-
component:
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
component: {
|
|
85
|
+
...COMPONENT,
|
|
86
|
+
full_path: `${COLLECTION.fieldId}[0].${COMPONENT.fieldId}`
|
|
87
|
+
},
|
|
91
88
|
value: 'Bravo'
|
|
92
89
|
});
|
|
93
90
|
});
|
|
94
|
-
it('should get an appropriate row for a collection with a single readonly text component where the item label is an empty string',
|
|
95
|
-
|
|
91
|
+
it('should get an appropriate row for a collection with a single readonly text component where the item label is an empty string', () => {
|
|
92
|
+
const FORM_DATA = {
|
|
96
93
|
collection: [{
|
|
97
94
|
a: 'Bravo'
|
|
98
95
|
}]
|
|
99
96
|
};
|
|
100
|
-
|
|
97
|
+
const PAGE = {
|
|
101
98
|
id: 'page',
|
|
102
99
|
formData: FORM_DATA,
|
|
103
100
|
cya_link: {}
|
|
104
101
|
};
|
|
105
|
-
|
|
102
|
+
const COMPONENT = {
|
|
106
103
|
type: 'text',
|
|
107
104
|
readonly: true,
|
|
108
105
|
id: 'a',
|
|
109
106
|
fieldId: 'a',
|
|
110
107
|
label: 'Alpha'
|
|
111
108
|
};
|
|
112
|
-
|
|
109
|
+
const COLLECTION = {
|
|
113
110
|
id: 'collection',
|
|
114
111
|
fieldId: 'collection',
|
|
115
112
|
type: _models.ComponentTypes.COLLECTION,
|
|
@@ -121,41 +118,42 @@ describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
|
121
118
|
value: FORM_DATA.collection,
|
|
122
119
|
formData: FORM_DATA
|
|
123
120
|
};
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
const ON_ACTION = () => {};
|
|
122
|
+
const ROWS = (0, _getCYARowsForCollection.default)(PAGE, COLLECTION, FORM_DATA.collection, ON_ACTION);
|
|
126
123
|
expect(ROWS.length).toEqual(1); // Just the component row, no title row
|
|
127
124
|
(0, _setupTests.expectObjectLike)(ROWS[0], {
|
|
128
125
|
pageId: PAGE.id,
|
|
129
126
|
fieldId: COMPONENT.fieldId,
|
|
130
|
-
full_path:
|
|
127
|
+
full_path: `${COLLECTION.fieldId}[0].${COMPONENT.fieldId}`,
|
|
131
128
|
key: COMPONENT.label,
|
|
132
129
|
action: null,
|
|
133
|
-
component:
|
|
134
|
-
|
|
135
|
-
|
|
130
|
+
component: {
|
|
131
|
+
...COMPONENT,
|
|
132
|
+
full_path: `${COLLECTION.fieldId}[0].${COMPONENT.fieldId}`
|
|
133
|
+
},
|
|
136
134
|
value: 'Bravo'
|
|
137
135
|
});
|
|
138
136
|
});
|
|
139
|
-
it('should interpolate a field label appropriately',
|
|
140
|
-
|
|
137
|
+
it('should interpolate a field label appropriately', () => {
|
|
138
|
+
const FORM_DATA = {
|
|
141
139
|
collection: [{
|
|
142
140
|
a: 'Bravo'
|
|
143
141
|
}]
|
|
144
142
|
};
|
|
145
|
-
|
|
143
|
+
const PAGE = {
|
|
146
144
|
id: 'page',
|
|
147
145
|
formData: FORM_DATA,
|
|
148
146
|
cya_link: {}
|
|
149
147
|
};
|
|
150
148
|
// eslint-disable-next-line no-template-curly-in-string
|
|
151
|
-
|
|
149
|
+
const COMPONENT = {
|
|
152
150
|
type: 'text',
|
|
153
151
|
readonly: true,
|
|
154
152
|
id: 'a',
|
|
155
153
|
fieldId: 'a',
|
|
156
154
|
label: 'Alpha ${index}'
|
|
157
155
|
};
|
|
158
|
-
|
|
156
|
+
const COLLECTION = {
|
|
159
157
|
id: 'collection',
|
|
160
158
|
fieldId: 'collection',
|
|
161
159
|
type: _models.ComponentTypes.COLLECTION,
|
|
@@ -163,43 +161,43 @@ describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
|
163
161
|
value: FORM_DATA.collection,
|
|
164
162
|
formData: FORM_DATA
|
|
165
163
|
};
|
|
166
|
-
|
|
167
|
-
|
|
164
|
+
const ON_ACTION = () => {};
|
|
165
|
+
const ROWS = (0, _getCYARowsForCollection.default)(PAGE, COLLECTION, FORM_DATA.collection, ON_ACTION);
|
|
168
166
|
expect(ROWS.length).toEqual(2); // Title and item row.
|
|
169
167
|
(0, _setupTests.expectObjectLike)(ROWS[1], {
|
|
170
168
|
pageId: PAGE.id,
|
|
171
169
|
fieldId: COMPONENT.fieldId,
|
|
172
|
-
full_path:
|
|
170
|
+
full_path: `${COLLECTION.fieldId}[0].${COMPONENT.fieldId}`,
|
|
173
171
|
key: 'Alpha 1',
|
|
174
172
|
// no countOffset
|
|
175
173
|
action: null,
|
|
176
|
-
component:
|
|
177
|
-
|
|
174
|
+
component: {
|
|
175
|
+
...COMPONENT,
|
|
176
|
+
full_path: `${COLLECTION.fieldId}[0].${COMPONENT.fieldId}`,
|
|
178
177
|
label: 'Alpha 1' // no countOffset
|
|
179
|
-
}
|
|
180
|
-
|
|
178
|
+
},
|
|
181
179
|
value: 'Bravo'
|
|
182
180
|
});
|
|
183
181
|
});
|
|
184
|
-
it('should ignore the result of the override function if it returns nullish',
|
|
185
|
-
|
|
182
|
+
it('should ignore the result of the override function if it returns nullish', () => {
|
|
183
|
+
const FORM_DATA = {
|
|
186
184
|
collection: [{
|
|
187
185
|
a: 'Bravo'
|
|
188
186
|
}]
|
|
189
187
|
};
|
|
190
|
-
|
|
188
|
+
const PAGE = {
|
|
191
189
|
id: 'page',
|
|
192
190
|
formData: FORM_DATA,
|
|
193
191
|
cya_link: {}
|
|
194
192
|
};
|
|
195
|
-
|
|
193
|
+
const COMPONENT = {
|
|
196
194
|
type: 'text',
|
|
197
195
|
readonly: true,
|
|
198
196
|
id: 'a',
|
|
199
197
|
fieldId: 'a',
|
|
200
198
|
label: 'Alpha'
|
|
201
199
|
};
|
|
202
|
-
|
|
200
|
+
const COLLECTION = {
|
|
203
201
|
id: 'collection',
|
|
204
202
|
fieldId: 'collection',
|
|
205
203
|
type: _models.ComponentTypes.COLLECTION,
|
|
@@ -208,15 +206,13 @@ describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
|
208
206
|
value: FORM_DATA.collection,
|
|
209
207
|
formData: FORM_DATA
|
|
210
208
|
};
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
return null;
|
|
214
|
-
});
|
|
209
|
+
const ON_ACTION = () => {};
|
|
210
|
+
const ROWS = (0, _getCYARowsForCollection.default)(PAGE, COLLECTION, FORM_DATA.collection, ON_ACTION, () => null);
|
|
215
211
|
expect(ROWS.length).toEqual(2); // Item title row + component row
|
|
216
212
|
(0, _setupTests.expectObjectLike)(ROWS[0], {
|
|
217
213
|
pageId: PAGE.id,
|
|
218
214
|
fieldId: COLLECTION.fieldId,
|
|
219
|
-
full_path:
|
|
215
|
+
full_path: `${COLLECTION.fieldId}[0]`,
|
|
220
216
|
key: 'Item 23',
|
|
221
217
|
// includes countOffset
|
|
222
218
|
type: 'title',
|
|
@@ -225,34 +221,35 @@ describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
|
225
221
|
(0, _setupTests.expectObjectLike)(ROWS[1], {
|
|
226
222
|
pageId: PAGE.id,
|
|
227
223
|
fieldId: COMPONENT.fieldId,
|
|
228
|
-
full_path:
|
|
224
|
+
full_path: `${COLLECTION.fieldId}[0].${COMPONENT.fieldId}`,
|
|
229
225
|
key: COMPONENT.label,
|
|
230
226
|
action: null,
|
|
231
|
-
component:
|
|
232
|
-
|
|
233
|
-
|
|
227
|
+
component: {
|
|
228
|
+
...COMPONENT,
|
|
229
|
+
full_path: `${COLLECTION.fieldId}[0].${COMPONENT.fieldId}`
|
|
230
|
+
},
|
|
234
231
|
value: 'Bravo'
|
|
235
232
|
});
|
|
236
233
|
});
|
|
237
|
-
it('should use rows produced by the override function if provided',
|
|
238
|
-
|
|
234
|
+
it('should use rows produced by the override function if provided', () => {
|
|
235
|
+
const FORM_DATA = {
|
|
239
236
|
collection: [{
|
|
240
237
|
a: 'Bravo'
|
|
241
238
|
}]
|
|
242
239
|
};
|
|
243
|
-
|
|
240
|
+
const PAGE = {
|
|
244
241
|
id: 'page',
|
|
245
242
|
formData: FORM_DATA,
|
|
246
243
|
cya_link: {}
|
|
247
244
|
};
|
|
248
|
-
|
|
245
|
+
const COMPONENT = {
|
|
249
246
|
type: 'text',
|
|
250
247
|
readonly: true,
|
|
251
248
|
id: 'a',
|
|
252
249
|
fieldId: 'a',
|
|
253
250
|
label: 'Alpha'
|
|
254
251
|
};
|
|
255
|
-
|
|
252
|
+
const COLLECTION = {
|
|
256
253
|
id: 'collection',
|
|
257
254
|
fieldId: 'collection',
|
|
258
255
|
type: _models.ComponentTypes.COLLECTION,
|
|
@@ -261,28 +258,28 @@ describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
|
261
258
|
value: FORM_DATA.collection,
|
|
262
259
|
formData: FORM_DATA
|
|
263
260
|
};
|
|
264
|
-
|
|
261
|
+
const ON_ACTION = () => {};
|
|
265
262
|
// eslint-disable-next-line arrow-body-style
|
|
266
|
-
|
|
263
|
+
const OVERRIDE = (page, comp) => {
|
|
267
264
|
// This will be called for each component in the collection,
|
|
268
265
|
// returning a custom row object.
|
|
269
266
|
return {
|
|
270
|
-
key:
|
|
267
|
+
key: `CustomRowFor${comp.label}`
|
|
271
268
|
};
|
|
272
269
|
};
|
|
273
|
-
|
|
270
|
+
const ROWS = (0, _getCYARowsForCollection.default)(PAGE, COLLECTION, FORM_DATA.collection, ON_ACTION, OVERRIDE);
|
|
274
271
|
expect(ROWS.length).toEqual(2); // Item title row + component row
|
|
275
272
|
(0, _setupTests.expectObjectLike)(ROWS[0], {
|
|
276
273
|
pageId: PAGE.id,
|
|
277
274
|
fieldId: COLLECTION.fieldId,
|
|
278
|
-
full_path:
|
|
275
|
+
full_path: `${COLLECTION.fieldId}[0]`,
|
|
279
276
|
key: 'Item 23',
|
|
280
277
|
// includes countOffset
|
|
281
278
|
type: 'title',
|
|
282
279
|
action: null
|
|
283
280
|
});
|
|
284
281
|
(0, _setupTests.expectObjectLike)(ROWS[1], {
|
|
285
|
-
key:
|
|
282
|
+
key: `CustomRowFor${COMPONENT.label}`
|
|
286
283
|
});
|
|
287
284
|
});
|
|
288
285
|
});
|