@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.2-alpha
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/README.md +5 -0
- package/dist/components/CheckYourAnswers/Answer.js +12 -11
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +62 -60
- package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +14 -14
- package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
- package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
- package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +34 -47
- package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
- package/dist/components/CollectionSummary/SummaryCard.js +101 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
- package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
- package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
- package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +63 -100
- package/dist/components/FormComponent/Collection.test.js +907 -1080
- package/dist/components/FormComponent/Container.js +35 -29
- package/dist/components/FormComponent/Container.test.js +378 -409
- package/dist/components/FormComponent/FormComponent.js +59 -63
- 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 +70 -93
- package/dist/components/FormPage/FormPage.test.js +150 -202
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +131 -173
- package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
- 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 +22 -25
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
- 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 +14 -25
- 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 +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +43 -44
- package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
- package/dist/components/FormRenderer/onPageAction.js +26 -35
- package/dist/components/FormRenderer/onPageAction.test.js +177 -186
- package/dist/components/FormRenderer/onTaskAction.js +11 -12
- package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
- package/dist/components/PageActions/ActionButton.js +14 -14
- 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 +10 -18
- package/dist/components/SummaryList/GroupAction.test.js +38 -34
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +38 -34
- package/dist/components/SummaryList/SummaryList.js +23 -25
- package/dist/components/SummaryList/SummaryList.test.js +162 -189
- package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +7 -5
- package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
- 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 +56 -79
- package/dist/components/TaskList/TaskList.test.js +149 -149
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +53 -46
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +56 -79
- 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 +57 -69
- 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 +25 -37
- 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 +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
- package/dist/utils/Component/addShowWhen.js +5 -6
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +12 -15
- package/dist/utils/Component/applyToComponentTree.test.js +28 -31
- package/dist/utils/Component/cleanAttributes.js +12 -11
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +79 -85
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
- 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 +21 -26
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
- 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 +201 -226
- 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 +32 -39
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
- 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 +16 -20
- 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 +23 -28
- package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
- package/dist/utils/Component/showComponent.js +2 -2
- 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 +17 -26
- 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 +12 -15
- 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 +14 -15
- package/dist/utils/Container/setupNesting.test.js +20 -23
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +30 -44
- package/dist/utils/Data/applyFormula.test.js +21 -21
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +72 -63
- package/dist/utils/Data/getAutocompleteSource.test.js +106 -98
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +13 -13
- package/dist/utils/Data/getOptions.js +35 -42
- package/dist/utils/Data/getOptions.test.js +37 -38
- 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 -12
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +9 -10
- 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 +13 -20
- package/dist/utils/Data/setupFormData.test.js +48 -47
- package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
- package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +30 -30
- package/dist/utils/FormPage/getFormPage.js +12 -15
- package/dist/utils/FormPage/getFormPage.test.js +23 -24
- package/dist/utils/FormPage/getFormPages.js +8 -11
- package/dist/utils/FormPage/getFormPages.test.js +15 -16
- package/dist/utils/FormPage/getPageActions.js +10 -13
- 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 +2 -2
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +15 -23
- package/dist/utils/FormPage/useComponent.test.js +49 -50
- 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 +5 -6
- 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 +23 -24
- package/dist/utils/Hub/index.js +2 -2
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- 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 +12 -13
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +2 -2
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +6 -6
- package/dist/utils/Operate/getFirstOf.test.js +32 -32
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +9 -9
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +4 -4
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +8 -8
- package/dist/utils/Operate/runPageOperations.test.js +24 -25
- package/dist/utils/Operate/setValueInFormData.js +3 -3
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +7 -7
- package/dist/utils/Operate/shouldRun.test.js +22 -24
- 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 -4
- 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 +8 -12
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
- 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 +3 -3
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
- 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 +35 -36
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- 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 +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +18 -23
- package/dist/utils/Validate/validateCollection.test.js +75 -67
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +179 -154
- package/dist/utils/Validate/validateContainer.js +14 -17
- package/dist/utils/Validate/validateContainer.test.js +59 -53
- package/dist/utils/Validate/validateDate.js +16 -22
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +27 -27
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +13 -18
- package/dist/utils/Validate/validatePage.test.js +198 -195
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +15 -15
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +4 -6
- 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 +5 -6
- package/package.json +2 -4
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _mustBeOneOf = _interopRequireDefault(require("./mustBeOneOf"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('utils',
|
|
6
|
-
describe('Validate',
|
|
7
|
-
describe('additional',
|
|
8
|
-
describe('mustBeShorterThan',
|
|
9
|
-
test('should return true given the string is in the array',
|
|
10
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('utils', () => {
|
|
6
|
+
describe('Validate', () => {
|
|
7
|
+
describe('additional', () => {
|
|
8
|
+
describe('mustBeShorterThan', () => {
|
|
9
|
+
test('should return true given the string is in the array', () => {
|
|
10
|
+
const result = (0, _mustBeOneOf.default)('test2', {
|
|
11
11
|
array: ["test1", "test2", "test3", "test4"]
|
|
12
12
|
});
|
|
13
13
|
expect(result).toEqual(true);
|
|
14
14
|
});
|
|
15
|
-
test('should return false given the string is not in the array',
|
|
16
|
-
|
|
15
|
+
test('should return false given the string is not in the array', () => {
|
|
16
|
+
const result = (0, _mustBeOneOf.default)('test5', {
|
|
17
17
|
array: ["test1", "test2", "test3", "test4"]
|
|
18
18
|
});
|
|
19
19
|
expect(result).toEqual(false);
|
|
20
20
|
});
|
|
21
|
-
test('should return false given the array is empty',
|
|
22
|
-
|
|
21
|
+
test('should return false given the array is empty', () => {
|
|
22
|
+
const result = (0, _mustBeOneOf.default)('test1', {
|
|
23
23
|
array: []
|
|
24
24
|
});
|
|
25
25
|
expect(result).toEqual(false);
|
|
26
26
|
});
|
|
27
|
-
test('should return false when only the partial string is in the array',
|
|
28
|
-
|
|
27
|
+
test('should return false when only the partial string is in the array', () => {
|
|
28
|
+
const result = (0, _mustBeOneOf.default)('test', {
|
|
29
29
|
array: ["test1", "test2", "test3", "test4"]
|
|
30
30
|
});
|
|
31
31
|
expect(result).toEqual(false);
|
|
@@ -11,7 +11,7 @@ exports.default = void 0;
|
|
|
11
11
|
* @param {number} config.value - the length that string.length must be less than.
|
|
12
12
|
* @returns true if string.length is greater than config.value, false if not.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
const mustBeShorterThan = (string, config) => {
|
|
15
15
|
if (!string) {
|
|
16
16
|
// null, undefined and empty strings should be picked up by the required flag
|
|
17
17
|
// and not considered here as they would be valid for optional fields.
|
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _mustBeShorterThan = _interopRequireDefault(require("./mustBeShorterThan"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('utils',
|
|
6
|
-
describe('Validate',
|
|
7
|
-
describe('additional',
|
|
8
|
-
describe('mustBeShorterThan',
|
|
9
|
-
test('should return true given a string shorter than the given length',
|
|
10
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('utils', () => {
|
|
6
|
+
describe('Validate', () => {
|
|
7
|
+
describe('additional', () => {
|
|
8
|
+
describe('mustBeShorterThan', () => {
|
|
9
|
+
test('should return true given a string shorter than the given length', () => {
|
|
10
|
+
const result = (0, _mustBeShorterThan.default)('to', {
|
|
11
11
|
value: 3
|
|
12
12
|
});
|
|
13
13
|
expect(result).toEqual(true);
|
|
14
14
|
});
|
|
15
|
-
test('should return false given a string longer than the given length',
|
|
16
|
-
|
|
15
|
+
test('should return false given a string longer than the given length', () => {
|
|
16
|
+
const result = (0, _mustBeShorterThan.default)('test', {
|
|
17
17
|
value: 3
|
|
18
18
|
});
|
|
19
19
|
expect(result).toEqual(false);
|
|
20
20
|
});
|
|
21
|
-
test('should return false given a string equal to the given length',
|
|
22
|
-
|
|
21
|
+
test('should return false given a string equal to the given length', () => {
|
|
22
|
+
const result = (0, _mustBeShorterThan.default)('dog', {
|
|
23
23
|
value: 3
|
|
24
24
|
});
|
|
25
25
|
expect(result).toEqual(false);
|
|
26
26
|
});
|
|
27
|
-
test('should return true when string is undefined',
|
|
28
|
-
|
|
27
|
+
test('should return true when string is undefined', () => {
|
|
28
|
+
const result = (0, _mustBeShorterThan.default)(undefined, {
|
|
29
29
|
value: 3
|
|
30
30
|
});
|
|
31
31
|
expect(result).toEqual(true);
|
|
32
32
|
});
|
|
33
|
-
test('should return true when string is empty',
|
|
34
|
-
|
|
33
|
+
test('should return true when string is empty', () => {
|
|
34
|
+
const result = (0, _mustBeShorterThan.default)('', {
|
|
35
35
|
value: 3
|
|
36
36
|
});
|
|
37
37
|
expect(result).toEqual(true);
|
|
38
38
|
});
|
|
39
|
-
test('should return true when string is null',
|
|
40
|
-
|
|
39
|
+
test('should return true when string is null', () => {
|
|
40
|
+
const result = (0, _mustBeShorterThan.default)(null, {
|
|
41
41
|
value: 3
|
|
42
42
|
});
|
|
43
43
|
expect(result).toEqual(true);
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _getCollectionPageActiveId = _interopRequireDefault(require("../../CollectionPage/getCollectionPageActiveId"));
|
|
8
8
|
var _getCollectionPageData = _interopRequireDefault(require("../../CollectionPage/getCollectionPageData"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
/**
|
|
11
11
|
* @param {*} value - the value to check.
|
|
12
12
|
* @param {string} config.collectionPath - the path to the collection within formData
|
|
@@ -15,15 +15,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
15
15
|
* @param {object} formData - the current form data
|
|
16
16
|
* @returns true if components value is not the same in any other entry in the collection
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
const mustBeUniqueInCollection = (value, config, component, formData) => {
|
|
19
19
|
if (!value || !formData) {
|
|
20
20
|
// null, undefined and empty strings should be picked up by the required flag
|
|
21
21
|
// and not considered here as they would be valid for optional fields.
|
|
22
22
|
return true;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
const activeId = (0, _getCollectionPageActiveId.default)(config.collectionPath, formData);
|
|
25
|
+
const collectionData = (0, _getCollectionPageData.default)(config.collectionPath, formData);
|
|
26
|
+
const result = collectionData === null || collectionData === void 0 ? void 0 : collectionData.some(entry => {
|
|
27
27
|
// Don't compare it to itself
|
|
28
28
|
if (entry.id === activeId) {
|
|
29
29
|
return false;
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _mustBeUniqueInCollection = _interopRequireDefault(require("./mustBeUniqueInCollection"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
5
|
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; }
|
|
7
6
|
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; }
|
|
8
|
-
function _defineProperty(
|
|
9
|
-
function _toPropertyKey(
|
|
10
|
-
function _toPrimitive(
|
|
11
|
-
describe('utils',
|
|
12
|
-
describe('Validate',
|
|
13
|
-
describe('additional',
|
|
14
|
-
describe('mustBeUniqueInCollection',
|
|
15
|
-
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
|
+
describe('utils', () => {
|
|
11
|
+
describe('Validate', () => {
|
|
12
|
+
describe('additional', () => {
|
|
13
|
+
describe('mustBeUniqueInCollection', () => {
|
|
14
|
+
const COMPONENT = {
|
|
16
15
|
id: 'firstName',
|
|
17
16
|
type: 'text',
|
|
18
17
|
label: 'First name',
|
|
@@ -23,33 +22,33 @@ describe('utils', function () {
|
|
|
23
22
|
message: 'Should be unique'
|
|
24
23
|
}]
|
|
25
24
|
};
|
|
26
|
-
|
|
25
|
+
const CONFIG = {
|
|
27
26
|
function: 'mustBeUniqueInCollection',
|
|
28
27
|
collectionPath: 'names',
|
|
29
28
|
message: 'Should be unique'
|
|
30
29
|
};
|
|
31
|
-
|
|
32
|
-
test('should return true given no value',
|
|
33
|
-
|
|
30
|
+
const VALUE = 'NAME';
|
|
31
|
+
test('should return true given no value', () => {
|
|
32
|
+
const result = (0, _mustBeUniqueInCollection.default)(undefined, CONFIG, COMPONENT, {});
|
|
34
33
|
expect(result).toBeTruthy();
|
|
35
34
|
});
|
|
36
|
-
test('should return true given no formData',
|
|
37
|
-
|
|
35
|
+
test('should return true given no formData', () => {
|
|
36
|
+
const result = (0, _mustBeUniqueInCollection.default)(1, CONFIG, COMPONENT, undefined);
|
|
38
37
|
expect(result).toBeTruthy();
|
|
39
38
|
});
|
|
40
|
-
test('should return true for first entry in a collection',
|
|
41
|
-
|
|
39
|
+
test('should return true for first entry in a collection', () => {
|
|
40
|
+
const FORM_DATA = {
|
|
42
41
|
namesActiveId: 1,
|
|
43
42
|
names: [{
|
|
44
43
|
id: 1,
|
|
45
44
|
firstName: VALUE
|
|
46
45
|
}]
|
|
47
46
|
};
|
|
48
|
-
|
|
47
|
+
const result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
|
|
49
48
|
expect(result).toBeTruthy();
|
|
50
49
|
});
|
|
51
|
-
test('should return true if other entries do not have the same value for this field',
|
|
52
|
-
|
|
50
|
+
test('should return true if other entries do not have the same value for this field', () => {
|
|
51
|
+
const FORM_DATA = {
|
|
53
52
|
namesActiveId: 3,
|
|
54
53
|
names: [{
|
|
55
54
|
id: 1,
|
|
@@ -62,11 +61,11 @@ describe('utils', function () {
|
|
|
62
61
|
firstName: VALUE
|
|
63
62
|
}]
|
|
64
63
|
};
|
|
65
|
-
|
|
64
|
+
const result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
|
|
66
65
|
expect(result).toBeTruthy();
|
|
67
66
|
});
|
|
68
|
-
test('should return false if other entries do have the same value for this field',
|
|
69
|
-
|
|
67
|
+
test('should return false if other entries do have the same value for this field', () => {
|
|
68
|
+
const FORM_DATA = {
|
|
70
69
|
namesActiveId: 3,
|
|
71
70
|
names: [{
|
|
72
71
|
id: 1,
|
|
@@ -79,12 +78,12 @@ describe('utils', function () {
|
|
|
79
78
|
firstName: VALUE
|
|
80
79
|
}]
|
|
81
80
|
};
|
|
82
|
-
|
|
81
|
+
const result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
|
|
83
82
|
expect(result).toBeFalsy();
|
|
84
83
|
});
|
|
85
|
-
test('should return false if other entries do have the same value for this field within a nested collection',
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
test('should return false if other entries do have the same value for this field within a nested collection', () => {
|
|
85
|
+
const NESTED_VALUE = 'delta';
|
|
86
|
+
const FORM_DATA = {
|
|
88
87
|
namesActiveId: 3,
|
|
89
88
|
names: [{
|
|
90
89
|
id: 1,
|
|
@@ -105,7 +104,7 @@ describe('utils', function () {
|
|
|
105
104
|
}]
|
|
106
105
|
}]
|
|
107
106
|
};
|
|
108
|
-
|
|
107
|
+
const COMPONENT_NESTED = {
|
|
109
108
|
id: 'surname',
|
|
110
109
|
type: 'text',
|
|
111
110
|
label: 'Surname',
|
|
@@ -116,13 +115,13 @@ describe('utils', function () {
|
|
|
116
115
|
message: 'Should be unique'
|
|
117
116
|
}]
|
|
118
117
|
};
|
|
119
|
-
|
|
118
|
+
const result = (0, _mustBeUniqueInCollection.default)(NESTED_VALUE, _objectSpread(_objectSpread({}, CONFIG), {}, {
|
|
120
119
|
collectionPath: 'names.surnames'
|
|
121
120
|
}), COMPONENT_NESTED, FORM_DATA);
|
|
122
121
|
expect(result).toBeFalsy();
|
|
123
122
|
});
|
|
124
|
-
test('should return true if other entries have the same value for this field in a different case',
|
|
125
|
-
|
|
123
|
+
test('should return true if other entries have the same value for this field in a different case', () => {
|
|
124
|
+
const FORM_DATA = {
|
|
126
125
|
namesActiveId: 2,
|
|
127
126
|
names: [{
|
|
128
127
|
id: 1,
|
|
@@ -135,11 +134,11 @@ describe('utils', function () {
|
|
|
135
134
|
firstName: 'bravo'
|
|
136
135
|
}]
|
|
137
136
|
};
|
|
138
|
-
|
|
137
|
+
const result = (0, _mustBeUniqueInCollection.default)('alpha', CONFIG, COMPONENT, FORM_DATA);
|
|
139
138
|
expect(result).toBeTruthy();
|
|
140
139
|
});
|
|
141
|
-
test('should return false if other entries have the same value for this field in a different case and caseInsensitive is true',
|
|
142
|
-
|
|
140
|
+
test('should return false if other entries have the same value for this field in a different case and caseInsensitive is true', () => {
|
|
141
|
+
const FORM_DATA = {
|
|
143
142
|
namesActiveId: 2,
|
|
144
143
|
names: [{
|
|
145
144
|
id: 1,
|
|
@@ -152,7 +151,7 @@ describe('utils', function () {
|
|
|
152
151
|
firstName: 'bravo'
|
|
153
152
|
}]
|
|
154
153
|
};
|
|
155
|
-
|
|
154
|
+
const result = (0, _mustBeUniqueInCollection.default)('alpha', _objectSpread(_objectSpread({}, CONFIG), {}, {
|
|
156
155
|
caseInsensitive: true
|
|
157
156
|
}), COMPONENT, FORM_DATA);
|
|
158
157
|
expect(result).toBeFalsy();
|
|
@@ -12,9 +12,9 @@ exports.default = void 0;
|
|
|
12
12
|
* otherwise returns false
|
|
13
13
|
*/
|
|
14
14
|
// eslint-disable-next-line arrow-body-style
|
|
15
|
-
|
|
15
|
+
const mustEnterAtLeastOne = (data, _, component) => {
|
|
16
16
|
var _component$components;
|
|
17
|
-
return (_component$components = component.components) === null || _component$components === void 0 ? void 0 : _component$components.some(
|
|
17
|
+
return (_component$components = component.components) === null || _component$components === void 0 ? void 0 : _component$components.some(inner => {
|
|
18
18
|
var _data$component$id;
|
|
19
19
|
if ((_data$component$id = data[component.id]) !== null && _data$component$id !== void 0 && _data$component$id[inner.id]) {
|
|
20
20
|
return true;
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _mustEnterAtLeastOne = _interopRequireDefault(require("./mustEnterAtLeastOne"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
describe('additional', function () {
|
|
12
|
-
describe('mustEnterAtLeastOne', function () {
|
|
13
|
-
var CONTAINER_ID = 'containerId';
|
|
14
|
-
var COMPONENT = {
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('utils', () => {
|
|
6
|
+
describe('Validate', () => {
|
|
7
|
+
describe('additional', () => {
|
|
8
|
+
describe('mustEnterAtLeastOne', () => {
|
|
9
|
+
const CONTAINER_ID = 'containerId';
|
|
10
|
+
const COMPONENT = {
|
|
15
11
|
id: CONTAINER_ID,
|
|
16
12
|
type: 'container',
|
|
17
13
|
components: [{
|
|
@@ -22,14 +18,16 @@ describe('utils', function () {
|
|
|
22
18
|
id: 'charlie'
|
|
23
19
|
}]
|
|
24
20
|
};
|
|
25
|
-
test('should return false if all components are empty',
|
|
26
|
-
|
|
21
|
+
test('should return false if all components are empty', () => {
|
|
22
|
+
const DATA = {};
|
|
27
23
|
expect((0, _mustEnterAtLeastOne.default)(DATA, {}, COMPONENT)).toEqual(false);
|
|
28
24
|
});
|
|
29
|
-
test('should return true if one component has data',
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
test('should return true if one component has data', () => {
|
|
26
|
+
const DATA = {
|
|
27
|
+
[CONTAINER_ID]: {
|
|
28
|
+
alpha: 'text'
|
|
29
|
+
}
|
|
30
|
+
};
|
|
33
31
|
expect((0, _mustEnterAtLeastOne.default)(DATA, {}, COMPONENT)).toEqual(true);
|
|
34
32
|
});
|
|
35
33
|
});
|
|
@@ -9,7 +9,7 @@ exports.default = void 0;
|
|
|
9
9
|
* @param {number} config.maxDecimals - the maximum amount of decimal places to allow
|
|
10
10
|
* @returns true if string has less than maxDecimals decimal places else returns false
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
const mustHaveLessThanDecimalPlaces = (string, config) => {
|
|
13
13
|
if (!string || !string.includes('.')) {
|
|
14
14
|
return true;
|
|
15
15
|
}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _mustHaveLessThanDecimalPlaces = _interopRequireDefault(require("./mustHaveLessThanDecimalPlaces"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('utils',
|
|
6
|
-
describe('Validate',
|
|
7
|
-
describe('additional',
|
|
8
|
-
describe('mustHaveLessThanDecimalPlaces',
|
|
9
|
-
test('should return false given a number with more than the allowed number of decimal places',
|
|
10
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('utils', () => {
|
|
6
|
+
describe('Validate', () => {
|
|
7
|
+
describe('additional', () => {
|
|
8
|
+
describe('mustHaveLessThanDecimalPlaces', () => {
|
|
9
|
+
test('should return false given a number with more than the allowed number of decimal places', () => {
|
|
10
|
+
const result = (0, _mustHaveLessThanDecimalPlaces.default)('999999999.9999', {
|
|
11
11
|
maxDecimals: 3
|
|
12
12
|
});
|
|
13
13
|
expect(result).toEqual(false);
|
|
14
14
|
});
|
|
15
|
-
test('should return true given a number with less than the allowed number of decimal places',
|
|
16
|
-
|
|
15
|
+
test('should return true given a number with less than the allowed number of decimal places', () => {
|
|
16
|
+
const result = (0, _mustHaveLessThanDecimalPlaces.default)('999999999.99', {
|
|
17
17
|
maxDecimals: 3
|
|
18
18
|
});
|
|
19
19
|
expect(result).toEqual(true);
|
|
20
20
|
});
|
|
21
|
-
test('should return true given a number with no decimal places',
|
|
22
|
-
|
|
21
|
+
test('should return true given a number with no decimal places', () => {
|
|
22
|
+
const result = (0, _mustHaveLessThanDecimalPlaces.default)('999999999', {
|
|
23
23
|
maxDecimals: 3
|
|
24
24
|
});
|
|
25
25
|
expect(result).toEqual(true);
|
|
26
26
|
});
|
|
27
|
-
test('should return true given nothing',
|
|
28
|
-
|
|
27
|
+
test('should return true given nothing', () => {
|
|
28
|
+
const result = (0, _mustHaveLessThanDecimalPlaces.default)(undefined, {
|
|
29
29
|
maxDecimals: 3
|
|
30
30
|
});
|
|
31
31
|
expect(result).toEqual(true);
|
|
@@ -4,14 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
8
7
|
// NOTE: SQL RegEx reference:
|
|
9
8
|
// http://www.symantec.com/connect/articles/detection-sql-injection-and-cross-site-scripting-attacks
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const SQL_COMBINED = /(%27)|(')|(--)|(%23)|(#)|((%3D)|(=))[^\n]*((%27)|(')|(--)|(%3B)|(;))|w*((%27)|('))((%6F)|o|(%4F))((%72)|r|(%52))|((%27)|('))union/i;
|
|
10
|
+
const mustNotContainSql = value => {
|
|
12
11
|
// eslint-disable-next-line no-extra-boolean-cast
|
|
13
12
|
if (!!value) {
|
|
14
|
-
|
|
13
|
+
const string = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
15
14
|
return !SQL_COMBINED.test(string);
|
|
16
15
|
}
|
|
17
16
|
return false;
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _mustNotContainSql = _interopRequireDefault(require("./mustNotContainSql"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('utils',
|
|
6
|
-
describe('Validate',
|
|
7
|
-
describe('additional',
|
|
8
|
-
describe('mustNotContainSql',
|
|
9
|
-
test('should return true given a string not containing sql characters',
|
|
10
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('utils', () => {
|
|
6
|
+
describe('Validate', () => {
|
|
7
|
+
describe('additional', () => {
|
|
8
|
+
describe('mustNotContainSql', () => {
|
|
9
|
+
test('should return true given a string not containing sql characters', () => {
|
|
10
|
+
const result = (0, _mustNotContainSql.default)('test');
|
|
11
11
|
expect(result).toEqual(true);
|
|
12
12
|
});
|
|
13
|
-
test('should return true given non-string datatype is converted to string',
|
|
14
|
-
|
|
13
|
+
test('should return true given non-string datatype is converted to string', () => {
|
|
14
|
+
const result = (0, _mustNotContainSql.default)(123);
|
|
15
15
|
expect(result).toEqual(true);
|
|
16
16
|
});
|
|
17
|
-
test('should return false given a string containing sql characters',
|
|
18
|
-
|
|
17
|
+
test('should return false given a string containing sql characters', () => {
|
|
18
|
+
const result = (0, _mustNotContainSql.default)("test' OR '1'='1'");
|
|
19
19
|
expect(result).toEqual(false);
|
|
20
20
|
});
|
|
21
|
-
test('should return false given string is null',
|
|
22
|
-
|
|
21
|
+
test('should return false given string is null', () => {
|
|
22
|
+
const result = (0, _mustNotContainSql.default)(null);
|
|
23
23
|
expect(result).toEqual(false);
|
|
24
24
|
});
|
|
25
|
-
test('should return false given string is not defined',
|
|
26
|
-
|
|
25
|
+
test('should return false given string is not defined', () => {
|
|
26
|
+
const result = (0, _mustNotContainSql.default)(undefined);
|
|
27
27
|
expect(result).toEqual(false);
|
|
28
28
|
});
|
|
29
29
|
});
|
|
@@ -10,9 +10,9 @@ exports.default = void 0;
|
|
|
10
10
|
* @param {object} component the container component
|
|
11
11
|
* @returns true if the user has only provided a value for one of the components in the container, otherwise false.
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
const mustSelectOnlyOne = (data, _, component) => {
|
|
14
14
|
var _component$components;
|
|
15
|
-
|
|
15
|
+
const valueCount = (_component$components = component.components) === null || _component$components === void 0 ? void 0 : _component$components.reduce((acc, inner) => {
|
|
16
16
|
var _data$component$id;
|
|
17
17
|
if ((_data$component$id = data[component.id]) !== null && _data$component$id !== void 0 && _data$component$id[inner.id]) {
|
|
18
18
|
// Account for checkboxes that the user may have unselected
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _mustSelectOnlyOne = _interopRequireDefault(require("./mustSelectOnlyOne"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
describe('additional', function () {
|
|
12
|
-
describe('mustSelectOnlyOne', function () {
|
|
13
|
-
var CONTAINER_ID = 'containerId';
|
|
14
|
-
var COMPONENT = {
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('utils', () => {
|
|
6
|
+
describe('Validate', () => {
|
|
7
|
+
describe('additional', () => {
|
|
8
|
+
describe('mustSelectOnlyOne', () => {
|
|
9
|
+
const CONTAINER_ID = 'containerId';
|
|
10
|
+
const COMPONENT = {
|
|
15
11
|
id: CONTAINER_ID,
|
|
16
12
|
type: 'container',
|
|
17
13
|
components: [{
|
|
@@ -22,28 +18,34 @@ describe('utils', function () {
|
|
|
22
18
|
id: 'charlie'
|
|
23
19
|
}]
|
|
24
20
|
};
|
|
25
|
-
test('should return true if all components are empty',
|
|
26
|
-
|
|
21
|
+
test('should return true if all components are empty', () => {
|
|
22
|
+
const DATA = {};
|
|
27
23
|
expect((0, _mustSelectOnlyOne.default)(DATA, {}, COMPONENT)).toEqual(true);
|
|
28
24
|
});
|
|
29
|
-
test('should return true if one component has data',
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
test('should return true if one component has data', () => {
|
|
26
|
+
const DATA = {
|
|
27
|
+
[CONTAINER_ID]: {
|
|
28
|
+
alpha: 'text'
|
|
29
|
+
}
|
|
30
|
+
};
|
|
33
31
|
expect((0, _mustSelectOnlyOne.default)(DATA, {}, COMPONENT)).toEqual(true);
|
|
34
32
|
});
|
|
35
|
-
test('should return false if more than one component has data',
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
test('should return false if more than one component has data', () => {
|
|
34
|
+
const DATA = {
|
|
35
|
+
[CONTAINER_ID]: {
|
|
36
|
+
alpha: 'text',
|
|
37
|
+
bravo: 'test'
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
40
|
expect((0, _mustSelectOnlyOne.default)(DATA, {}, COMPONENT)).toEqual(false);
|
|
41
41
|
});
|
|
42
|
-
test('should return true if more than one component has data but one is an empty array',
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
test('should return true if more than one component has data but one is an empty array', () => {
|
|
43
|
+
const DATA = {
|
|
44
|
+
[CONTAINER_ID]: {
|
|
45
|
+
alpha: 'text',
|
|
46
|
+
bravo: []
|
|
47
|
+
}
|
|
48
|
+
};
|
|
47
49
|
expect((0, _mustSelectOnlyOne.default)(DATA, {}, COMPONENT)).toEqual(true);
|
|
48
50
|
});
|
|
49
51
|
});
|