@ukhomeoffice/cop-react-form-renderer 5.14.2 → 5.14.4
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 +94 -128
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +99 -129
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +291 -501
- package/dist/components/CheckYourAnswers/index.js +2 -3
- package/dist/components/CollectionPage/CollectionPage.js +64 -58
- package/dist/components/CollectionPage/CollectionPage.test.js +212 -238
- package/dist/components/CollectionPage/index.js +2 -3
- package/dist/components/FormComponent/Collection.js +77 -113
- package/dist/components/FormComponent/Collection.test.js +688 -787
- package/dist/components/FormComponent/Container.js +44 -43
- package/dist/components/FormComponent/Container.test.js +316 -346
- package/dist/components/FormComponent/FormComponent.js +58 -64
- package/dist/components/FormComponent/FormComponent.test.js +180 -219
- package/dist/components/FormComponent/helpers/addLabel.js +5 -9
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +2 -3
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +2 -2
- 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 +2 -3
- package/dist/components/FormPage/FormPage.js +65 -79
- package/dist/components/FormPage/FormPage.test.js +134 -170
- package/dist/components/FormPage/index.js +2 -3
- package/dist/components/FormRenderer/FormRenderer.js +151 -193
- package/dist/components/FormRenderer/FormRenderer.test.js +598 -920
- package/dist/components/FormRenderer/handlers/cyaAction.js +4 -5
- package/dist/components/FormRenderer/handlers/getPageId.js +2 -5
- 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 +3 -4
- package/dist/components/FormRenderer/handlers/navigate.js +5 -6
- package/dist/components/FormRenderer/handlers/submissionError.js +2 -3
- package/dist/components/FormRenderer/helpers/canActionProceed.js +2 -3
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +10 -10
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +2 -5
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +19 -27
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +17 -17
- package/dist/components/FormRenderer/helpers/getCYA.js +6 -9
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -10
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +19 -34
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +3 -6
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -13
- 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 +98 -92
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +66 -66
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
- package/dist/components/FormRenderer/helpers/index.js +3 -4
- package/dist/components/FormRenderer/index.js +2 -3
- package/dist/components/FormRenderer/onCYAAction.js +52 -62
- package/dist/components/FormRenderer/onCYAAction.test.js +146 -138
- package/dist/components/FormRenderer/onPageAction.js +48 -47
- package/dist/components/FormRenderer/onPageAction.test.js +219 -205
- package/dist/components/FormRenderer/onTaskAction.js +12 -17
- package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
- package/dist/components/PageActions/ActionButton.js +15 -19
- package/dist/components/PageActions/ActionButton.test.js +58 -79
- package/dist/components/PageActions/PageActions.js +12 -13
- package/dist/components/PageActions/PageActions.test.js +88 -116
- package/dist/components/PageActions/index.js +2 -3
- package/dist/components/SummaryList/GroupAction.js +15 -23
- package/dist/components/SummaryList/GroupAction.test.js +41 -37
- package/dist/components/SummaryList/RowAction.js +14 -19
- package/dist/components/SummaryList/RowAction.test.js +41 -37
- package/dist/components/SummaryList/SummaryList.js +25 -30
- package/dist/components/SummaryList/SummaryList.test.js +160 -182
- package/dist/components/SummaryList/SummaryListHeadingRow.js +9 -8
- package/dist/components/SummaryList/SummaryListRow.js +9 -8
- package/dist/components/SummaryList/SummaryListTitleRow.js +8 -7
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -8
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -8
- 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 +2 -3
- package/dist/components/TaskList/Task.js +22 -33
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +46 -75
- package/dist/components/TaskList/TaskList.test.js +118 -113
- package/dist/components/TaskList/TaskState.js +9 -9
- package/dist/components/TaskList/TaskState.test.js +56 -49
- package/dist/components/TaskList/index.js +2 -3
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +59 -85
- package/dist/context/HooksContext/HooksContext.test.js +28 -36
- package/dist/context/HooksContext/index.js +4 -6
- package/dist/context/ValidationContext/ValidationContext.js +35 -76
- package/dist/context/ValidationContext/ValidationContext.test.js +50 -61
- package/dist/context/ValidationContext/index.js +4 -6
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +17 -43
- package/dist/hooks/useGetRequest.js +61 -106
- package/dist/hooks/useHooks.js +2 -5
- package/dist/hooks/useRefData.js +29 -45
- package/dist/hooks/useValidation.js +2 -5
- package/dist/index.js +15 -17
- package/dist/models/CollectionLabels.js +2 -3
- package/dist/models/ComponentTypes.js +25 -26
- package/dist/models/EventTypes.js +5 -6
- package/dist/models/FormPages.js +5 -6
- package/dist/models/FormTypes.js +9 -10
- package/dist/models/HubFormats.js +4 -5
- package/dist/models/PageAction.js +45 -42
- package/dist/models/TaskStates.js +30 -31
- package/dist/models/index.js +11 -12
- package/dist/setupTests.js +20 -24
- package/dist/utils/CheckYourAnswers/getCYAAction.js +6 -7
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +18 -20
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +21 -23
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +18 -20
- package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +72 -72
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +20 -27
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +41 -47
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +71 -78
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +133 -114
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +27 -23
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +16 -23
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
- package/dist/utils/CheckYourAnswers/index.js +3 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +7 -9
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +9 -16
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +19 -20
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +4 -8
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +15 -15
- package/dist/utils/CollectionPage/index.js +3 -4
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -29
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +15 -15
- package/dist/utils/Component/addShowWhen.js +5 -10
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +20 -22
- package/dist/utils/Component/applyToComponentTree.test.js +28 -33
- package/dist/utils/Component/cleanAttributes.js +11 -16
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +7 -9
- package/dist/utils/Component/elevateNestedComponents.test.js +19 -19
- package/dist/utils/Component/getComponent.js +91 -99
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +51 -63
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +41 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -37
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +23 -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 +24 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +59 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +35 -41
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +24 -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 +14 -14
- package/dist/utils/Component/index.js +3 -4
- package/dist/utils/Component/isEditable.js +3 -7
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -3
- package/dist/utils/Component/optionIsSelected.test.js +10 -10
- package/dist/utils/Component/setupContainerComponentsPath.js +30 -33
- package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
- package/dist/utils/Component/showComponent.js +4 -6
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +6 -6
- package/dist/utils/Condition/index.js +3 -4
- package/dist/utils/Condition/meetsAllConditions.js +9 -10
- package/dist/utils/Condition/meetsAllConditions.test.js +18 -18
- package/dist/utils/Condition/meetsCondition.js +19 -27
- package/dist/utils/Condition/meetsCondition.test.js +377 -377
- package/dist/utils/Condition/meetsOneCondition.js +7 -8
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +15 -21
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +5 -8
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +3 -4
- package/dist/utils/Container/setupNesting.js +17 -24
- package/dist/utils/Container/setupNesting.test.js +28 -31
- package/dist/utils/Container/showContainer.js +5 -10
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +41 -52
- package/dist/utils/Data/applyFormula.test.js +26 -26
- package/dist/utils/Data/getAutocompleteSource.js +11 -14
- package/dist/utils/Data/getAutocompleteSource.test.js +59 -59
- package/dist/utils/Data/getDataPath.js +21 -32
- package/dist/utils/Data/getDataPath.test.js +20 -20
- package/dist/utils/Data/getOptions.js +22 -28
- package/dist/utils/Data/getOptions.test.js +21 -21
- package/dist/utils/Data/getSourceData.js +7 -21
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +3 -4
- package/dist/utils/Data/refDataToOptions.js +12 -17
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +8 -10
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +32 -48
- package/dist/utils/Data/setupFormData.test.js +99 -98
- package/dist/utils/Data/setupRefDataUrlForComponent.js +22 -30
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -12
- package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
- package/dist/utils/FormPage/getFormPage.js +17 -19
- package/dist/utils/FormPage/getFormPage.test.js +49 -48
- package/dist/utils/FormPage/getFormPages.js +9 -15
- package/dist/utils/FormPage/getFormPages.test.js +22 -25
- package/dist/utils/FormPage/getPageActions.js +11 -19
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +6 -9
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -4
- package/dist/utils/FormPage/showFormPage.js +5 -10
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +4 -5
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +21 -29
- package/dist/utils/FormPage/useComponent.test.js +71 -73
- package/dist/utils/Format/formatData.js +2 -3
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -9
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +7 -10
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -7
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +3 -4
- package/dist/utils/Hub/getFormHub.js +3 -4
- package/dist/utils/Hub/getFormHub.test.js +29 -32
- package/dist/utils/Hub/index.js +3 -4
- package/dist/utils/Meta/constants.js +2 -4
- package/dist/utils/Meta/documents/getDocuments.js +2 -6
- package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
- package/dist/utils/Meta/documents/index.js +3 -4
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -19
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
- package/dist/utils/Meta/index.js +3 -4
- package/dist/utils/Operate/checkValueIsTruthy.js +5 -6
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/getFirstOf.js +9 -10
- package/dist/utils/Operate/getFirstOf.test.js +33 -33
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +13 -14
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/index.js +3 -4
- package/dist/utils/Operate/persistValueInFormData.js +7 -8
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +10 -11
- package/dist/utils/Operate/runPageOperations.test.js +36 -37
- package/dist/utils/Operate/setValueInFormData.js +6 -7
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +9 -10
- package/dist/utils/Operate/shouldRun.test.js +22 -28
- package/dist/utils/Validate/additional/conditionallyRequired.js +5 -7
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -9
- package/dist/utils/Validate/additional/index.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeAfter.js +4 -5
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +4 -5
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -14
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +34 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +3 -4
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +5 -6
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +6 -7
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +3 -4
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +2 -3
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +3 -4
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeShorterThan.js +2 -3
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +4 -7
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +2 -3
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +4 -7
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -25
- package/dist/utils/Validate/index.js +3 -4
- package/dist/utils/Validate/validateCollection.js +22 -29
- package/dist/utils/Validate/validateCollection.test.js +85 -77
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +169 -147
- package/dist/utils/Validate/validateContainer.js +16 -22
- package/dist/utils/Validate/validateContainer.test.js +52 -48
- package/dist/utils/Validate/validateDate.js +14 -21
- package/dist/utils/Validate/validateDate.test.js +28 -29
- package/dist/utils/Validate/validateEmail.js +8 -11
- package/dist/utils/Validate/validateEmail.test.js +26 -26
- package/dist/utils/Validate/validateMultifile.js +6 -10
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +20 -22
- package/dist/utils/Validate/validatePage.test.js +146 -143
- package/dist/utils/Validate/validateRegex.js +6 -10
- package/dist/utils/Validate/validateRegex.test.js +17 -17
- package/dist/utils/Validate/validateRequired.js +6 -9
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +6 -9
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +8 -16
- package/dist/utils/Validate/validateTime.test.js +15 -15
- package/dist/utils/index.js +10 -12
- package/package.json +9 -6
|
@@ -2,124 +2,132 @@
|
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _validateCollection = _interopRequireDefault(require("./validateCollection"));
|
|
5
|
-
function _interopRequireDefault(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
item: item
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
it('should return an empty array when the component is null', function () {
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
// Local imports
|
|
7
|
+
|
|
8
|
+
describe('utils.Validate.Collection', () => {
|
|
9
|
+
const setup = (id, type, label, required, item) => ({
|
|
10
|
+
id,
|
|
11
|
+
fieldId: id,
|
|
12
|
+
type,
|
|
13
|
+
label,
|
|
14
|
+
required,
|
|
15
|
+
item
|
|
16
|
+
});
|
|
17
|
+
it('should return an empty array when the component is null', () => {
|
|
22
18
|
expect((0, _validateCollection.default)(null, [])).toEqual([]);
|
|
23
19
|
});
|
|
24
|
-
it('should return an empty array when the collection has an undefined item array',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
it('should return an empty array when the collection has an undefined item array', () => {
|
|
21
|
+
const ID = 'collection';
|
|
22
|
+
const LABEL = 'field';
|
|
23
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false, undefined);
|
|
28
24
|
expect((0, _validateCollection.default)(COLLECTION, [])).toEqual([]);
|
|
29
25
|
});
|
|
30
|
-
it('should return an empty array when the collection has an empty item array',
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
it('should return an empty array when the collection has an empty item array', () => {
|
|
27
|
+
const ID = 'collection';
|
|
28
|
+
const LABEL = 'field';
|
|
29
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false, []);
|
|
34
30
|
expect((0, _validateCollection.default)(COLLECTION, [])).toEqual([]);
|
|
35
31
|
});
|
|
36
|
-
it('should return an empty array when the collection has only valid items',
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
it('should return an empty array when the collection has only valid items', () => {
|
|
33
|
+
const EMAIL_ID = 'email';
|
|
34
|
+
const EMAIL_LABEL = 'Email';
|
|
35
|
+
const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
|
|
36
|
+
const ID = 'collection';
|
|
37
|
+
const LABEL = 'field';
|
|
38
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false, [EMAIL]);
|
|
39
|
+
const ITEMS = [{
|
|
40
|
+
[EMAIL_ID]: 'alpha.bravo@homeoffice.gov.uk'
|
|
41
|
+
}, {
|
|
42
|
+
[EMAIL_ID]: 'charlie.delta@homeoffice.gov.uk'
|
|
43
|
+
}];
|
|
44
44
|
expect((0, _validateCollection.default)(COLLECTION, ITEMS)).toEqual([]);
|
|
45
45
|
});
|
|
46
|
-
it('should return an array containing an error when the collection has an invalid first item',
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
it('should return an array containing an error when the collection has an invalid first item', () => {
|
|
47
|
+
const EMAIL_ID = 'email';
|
|
48
|
+
const EMAIL_LABEL = 'Email';
|
|
49
|
+
const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
|
|
50
|
+
const ID = 'container';
|
|
51
|
+
const LABEL = 'field';
|
|
52
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [EMAIL]);
|
|
53
|
+
const ITEMS = [{
|
|
54
|
+
[EMAIL_ID]: 'alpha.bravo@digital.homeoffice.com'
|
|
55
|
+
}, {
|
|
56
|
+
[EMAIL_ID]: 'alpha.bravo@digital.homeoffice.gov.uk'
|
|
57
|
+
}];
|
|
54
58
|
expect((0, _validateCollection.default)(COLLECTION, ITEMS)).toEqual([{
|
|
55
|
-
id:
|
|
56
|
-
error:
|
|
59
|
+
id: `${ID}[0].${EMAIL_ID}`,
|
|
60
|
+
error: `Enter ${EMAIL_LABEL.toLowerCase()} in the correct format, like jane.doe@homeoffice.gov.uk`
|
|
57
61
|
}]);
|
|
58
62
|
});
|
|
59
|
-
it('should return an array containing an error when the collection has an invalid second item',
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
it('should return an array containing an error when the collection has an invalid second item', () => {
|
|
64
|
+
const EMAIL_ID = 'email';
|
|
65
|
+
const EMAIL_LABEL = 'Email';
|
|
66
|
+
const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
|
|
67
|
+
const ID = 'container';
|
|
68
|
+
const LABEL = 'field';
|
|
69
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [EMAIL]);
|
|
70
|
+
const ITEMS = [{
|
|
71
|
+
[EMAIL_ID]: 'alpha.bravo@digital.homeoffice.gov.uk'
|
|
72
|
+
}, {
|
|
73
|
+
[EMAIL_ID]: 'alpha.bravo@digital.homeoffice.com'
|
|
74
|
+
}];
|
|
67
75
|
expect((0, _validateCollection.default)(COLLECTION, ITEMS)).toEqual([{
|
|
68
|
-
id:
|
|
69
|
-
error:
|
|
76
|
+
id: `${ID}[1].${EMAIL_ID}`,
|
|
77
|
+
error: `Enter ${EMAIL_LABEL.toLowerCase()} in the correct format, like jane.doe@homeoffice.gov.uk`
|
|
70
78
|
}]);
|
|
71
79
|
});
|
|
72
|
-
it('should correctly interpolate error messages using collection\'s index',
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
80
|
+
it('should correctly interpolate error messages using collection\'s index', () => {
|
|
81
|
+
const ID = 'container';
|
|
82
|
+
const LABEL = 'field';
|
|
83
|
+
const TYPE = 'autocomplete';
|
|
84
|
+
const ITEM = setup(ID, TYPE, LABEL, true, []);
|
|
77
85
|
ITEM.custom_errors = [{
|
|
78
86
|
"type": "required",
|
|
79
87
|
// eslint-disable-next-line no-template-curly-in-string
|
|
80
88
|
"message": "Test to check that ${index} is 1"
|
|
81
89
|
}];
|
|
82
|
-
|
|
90
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [ITEM]);
|
|
83
91
|
COLLECTION.countOffset = 0;
|
|
84
92
|
expect((0, _validateCollection.default)(COLLECTION, ITEM.custom_errors)).toEqual([{
|
|
85
|
-
error:
|
|
86
|
-
id:
|
|
93
|
+
error: `Test to check that 1 is 1`,
|
|
94
|
+
id: `${ID}[0].${COLLECTION.type}`
|
|
87
95
|
}]);
|
|
88
96
|
});
|
|
89
|
-
it('should correctly display firstOnlyMessage error message',
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
it('should correctly display firstOnlyMessage error message', () => {
|
|
98
|
+
const ID = 'container';
|
|
99
|
+
const LABEL = 'field';
|
|
100
|
+
const TYPE = 'autocomplete';
|
|
101
|
+
const ITEM = setup(ID, TYPE, LABEL, true, []);
|
|
94
102
|
ITEM.custom_errors = [{
|
|
95
103
|
"type": "required",
|
|
96
104
|
// eslint-disable-next-line no-template-curly-in-string
|
|
97
105
|
"message": "Test to check that ${index} is 1",
|
|
98
106
|
"firstOnlyMessage": "Test for first message"
|
|
99
107
|
}];
|
|
100
|
-
|
|
108
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [ITEM]);
|
|
101
109
|
COLLECTION.countOffset = 0;
|
|
102
110
|
expect((0, _validateCollection.default)(COLLECTION, ITEM.custom_errors)).toEqual([{
|
|
103
|
-
error:
|
|
104
|
-
id:
|
|
111
|
+
error: `Test for first message`,
|
|
112
|
+
id: `${ID}[0].${COLLECTION.type}`
|
|
105
113
|
}]);
|
|
106
114
|
});
|
|
107
|
-
it('should correctly display message if firstOnlyMessage is undefined',
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
115
|
+
it('should correctly display message if firstOnlyMessage is undefined', () => {
|
|
116
|
+
const ID = 'container';
|
|
117
|
+
const LABEL = 'field';
|
|
118
|
+
const TYPE = 'autocomplete';
|
|
119
|
+
const ITEM = setup(ID, TYPE, LABEL, true, []);
|
|
112
120
|
ITEM.custom_errors = [{
|
|
113
121
|
"type": "required",
|
|
114
122
|
// eslint-disable-next-line no-template-curly-in-string
|
|
115
123
|
"message": "Test to check that ${index} is 1",
|
|
116
124
|
"firstOnlyMessage": undefined
|
|
117
125
|
}];
|
|
118
|
-
|
|
126
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [ITEM]);
|
|
119
127
|
COLLECTION.countOffset = 0;
|
|
120
128
|
expect((0, _validateCollection.default)(COLLECTION, ITEM.custom_errors)).toEqual([{
|
|
121
|
-
error:
|
|
122
|
-
id:
|
|
129
|
+
error: `Test to check that 1 is 1`,
|
|
130
|
+
id: `${ID}[0].${COLLECTION.type}`
|
|
123
131
|
}]);
|
|
124
132
|
});
|
|
125
133
|
});
|
|
@@ -17,8 +17,9 @@ var _validateRegex = _interopRequireDefault(require("./validateRegex"));
|
|
|
17
17
|
var _validateRequired = _interopRequireDefault(require("./validateRequired"));
|
|
18
18
|
var _validateTextArea = _interopRequireDefault(require("./validateTextArea"));
|
|
19
19
|
var _validateTime = _interopRequireDefault(require("./validateTime"));
|
|
20
|
-
function _interopRequireDefault(
|
|
21
|
-
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
// Local imports
|
|
22
|
+
|
|
22
23
|
/**
|
|
23
24
|
* Validates a single component.
|
|
24
25
|
* @param {object} component The component to validate.
|
|
@@ -26,18 +27,18 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
26
27
|
* @param {object} formData The data at the top level of the form.
|
|
27
28
|
* @returns The first encountered error with the component.
|
|
28
29
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
const validateComponent = (component, outerData, formData) => {
|
|
31
|
+
const fd = formData || outerData;
|
|
31
32
|
if (!(0, _showComponent.default)(component, fd)) {
|
|
32
33
|
return undefined;
|
|
33
34
|
}
|
|
34
35
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
35
36
|
return (0, _validateContainer.default)(component, outerData, fd);
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
let error;
|
|
39
|
+
let properties;
|
|
40
|
+
const data = outerData && typeof outerData === 'object' ? outerData : {};
|
|
41
|
+
const value = data[component.fieldId];
|
|
41
42
|
if (component.required) {
|
|
42
43
|
error = (0, _validateRequired.default)(value, component.label, component.custom_errors);
|
|
43
44
|
}
|
|
@@ -51,10 +52,11 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
51
52
|
case _models.ComponentTypes.DATE:
|
|
52
53
|
case _models.ComponentTypes.TIME:
|
|
53
54
|
{
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
message
|
|
57
|
-
propsInError
|
|
55
|
+
const validator = component.type === _models.ComponentTypes.DATE ? _validateDate.default : _validateTime.default;
|
|
56
|
+
const {
|
|
57
|
+
message,
|
|
58
|
+
propsInError
|
|
59
|
+
} = validator(value);
|
|
58
60
|
properties = propsInError;
|
|
59
61
|
error = message;
|
|
60
62
|
break;
|
|
@@ -63,9 +65,8 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
63
65
|
case _models.ComponentTypes.CHECKBOXES:
|
|
64
66
|
case _models.ComponentTypes.RADIOS:
|
|
65
67
|
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
(_component$data$optio = component.data.options) === null || _component$data$optio === void 0 ? void 0 : _component$data$optio.forEach(function (option) {
|
|
68
|
+
let nestedErrors = [];
|
|
69
|
+
component.data.options?.forEach(option => {
|
|
69
70
|
if (option.nested && (0, _optionIsSelected.default)(formData[component.id], option)) {
|
|
70
71
|
nestedErrors = nestedErrors.concat((0, _validateContainer.default)({
|
|
71
72
|
components: option.nested
|
|
@@ -104,11 +105,10 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
104
105
|
if (error) {
|
|
105
106
|
return {
|
|
106
107
|
id: component.full_path || component.id,
|
|
107
|
-
error
|
|
108
|
-
properties
|
|
108
|
+
error,
|
|
109
|
+
properties
|
|
109
110
|
};
|
|
110
111
|
}
|
|
111
112
|
return undefined;
|
|
112
113
|
};
|
|
113
|
-
var _default = validateComponent;
|
|
114
|
-
exports.default = _default;
|
|
114
|
+
var _default = exports.default = validateComponent;
|