@ukhomeoffice/cop-react-form-renderer 5.90.1 → 5.90.2
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 +181 -132
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +142 -106
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +941 -563
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +66 -75
- package/dist/components/CollectionPage/CollectionPage.test.js +369 -318
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +15 -15
- package/dist/components/CollectionSummary/BannerStrip.test.js +79 -83
- package/dist/components/CollectionSummary/CollectionSummary.js +131 -109
- package/dist/components/CollectionSummary/CollectionSummary.test.js +180 -198
- package/dist/components/CollectionSummary/Confirmation.js +13 -15
- package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
- package/dist/components/CollectionSummary/RenderListView.js +55 -47
- package/dist/components/CollectionSummary/RenderListView.test.js +81 -82
- package/dist/components/CollectionSummary/SummaryCard.js +157 -121
- package/dist/components/CollectionSummary/SummaryCard.test.js +1000 -970
- package/dist/components/CollectionSummary/SummaryCardDetails.js +94 -103
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +195 -187
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +36 -31
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +76 -64
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +117 -80
- package/dist/components/FormComponent/Collection.test.js +1082 -910
- package/dist/components/FormComponent/Container.js +38 -43
- package/dist/components/FormComponent/Container.test.js +411 -379
- package/dist/components/FormComponent/FormComponent.js +74 -71
- package/dist/components/FormComponent/FormComponent.test.js +415 -354
- package/dist/components/FormComponent/helpers/addLabel.js +7 -4
- 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 +5 -3
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
- 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 +87 -71
- package/dist/components/FormPage/FormPage.test.js +170 -133
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +198 -153
- package/dist/components/FormRenderer/FormRenderer.test.js +1116 -731
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
- 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 +3 -1
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +21 -17
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +30 -27
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +7 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +8 -6
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +32 -18
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +4 -2
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +11 -8
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +13 -12
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +98 -104
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +64 -65
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +79 -72
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +54 -61
- package/dist/components/FormRenderer/onCYAAction.test.js +153 -165
- package/dist/components/FormRenderer/onPageAction.js +41 -45
- package/dist/components/FormRenderer/onPageAction.test.js +210 -225
- package/dist/components/FormRenderer/onTaskAction.js +15 -11
- package/dist/components/FormRenderer/onTaskAction.test.js +89 -94
- package/dist/components/PageActions/ActionButton.js +16 -13
- package/dist/components/PageActions/ActionButton.test.js +79 -57
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +116 -87
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +21 -13
- package/dist/components/SummaryList/GroupAction.test.js +37 -41
- package/dist/components/SummaryList/RowAction.js +17 -12
- package/dist/components/SummaryList/RowAction.test.js +37 -41
- package/dist/components/SummaryList/SummaryList.js +28 -23
- package/dist/components/SummaryList/SummaryList.test.js +206 -179
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -8
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +5 -7
- package/dist/components/SummaryList/SummaryListRow.js +6 -8
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -7
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +6 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +6 -4
- 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 +30 -20
- package/dist/components/TaskList/Task.test.js +77 -84
- package/dist/components/TaskList/TaskList.js +84 -53
- package/dist/components/TaskList/TaskList.test.js +150 -150
- package/dist/components/TaskList/TaskState.js +6 -8
- package/dist/components/TaskList/TaskState.test.js +49 -56
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +81 -58
- package/dist/context/HooksContext/HooksContext.test.js +36 -27
- package/dist/context/HooksContext/index.js +4 -3
- package/dist/context/ValidationContext/ValidationContext.js +95 -44
- package/dist/context/ValidationContext/ValidationContext.test.js +70 -58
- package/dist/context/ValidationContext/index.js +4 -3
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +11 -10
- package/dist/hooks/useAxios.js +41 -15
- package/dist/hooks/useGetRequest.js +98 -62
- package/dist/hooks/useHooks.js +3 -1
- package/dist/hooks/useRefData.js +41 -28
- package/dist/hooks/useValidation.js +3 -1
- package/dist/index.js +15 -14
- 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 +38 -44
- package/dist/models/TaskStates.js +28 -29
- package/dist/models/index.js +10 -10
- package/dist/setupTests.js +32 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +55 -53
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +27 -17
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +36 -34
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +34 -20
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +45 -43
- package/dist/utils/CheckYourAnswers/getCYARow.js +10 -8
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +25 -19
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +17 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +45 -39
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +75 -72
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +105 -100
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +182 -218
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +21 -26
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +106 -112
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +21 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +83 -77
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +13 -13
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +19 -14
- 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 +22 -21
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +24 -14
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +43 -52
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +3 -3
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +12 -7
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +13 -8
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +26 -25
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +23 -21
- package/dist/utils/CollectionPage/getQuickEditPage.js +32 -37
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +22 -18
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +42 -37
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -48
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +7 -5
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +19 -12
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +26 -26
- package/dist/utils/Component/addShowWhen.js +8 -4
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +20 -19
- package/dist/utils/Component/applyToComponentTree.test.js +33 -28
- package/dist/utils/Component/cleanAttributes.js +13 -10
- package/dist/utils/Component/cleanAttributes.test.js +18 -17
- package/dist/utils/Component/elevateNestedComponents.js +7 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +97 -90
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -19
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +63 -50
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +49 -40
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +40 -30
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +19 -21
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +23 -18
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +27 -22
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -12
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +16 -18
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -10
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +16 -18
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +27 -23
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +16 -18
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +23 -18
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +73 -58
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +23 -18
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +23 -18
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +41 -34
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +32 -23
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -10
- package/dist/utils/Component/getDefaultValue.js +9 -7
- 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 +4 -2
- package/dist/utils/Component/isEditable.test.js +15 -14
- package/dist/utils/Component/optionIsSelected.js +4 -2
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +31 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
- package/dist/utils/Component/showComponent.js +4 -3
- 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 +31 -20
- 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 +19 -14
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +6 -4
- package/dist/utils/Container/getEditableComponents.test.js +46 -44
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +22 -16
- package/dist/utils/Container/setupNesting.test.js +31 -28
- package/dist/utils/Container/showContainer.js +8 -4
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +50 -40
- package/dist/utils/Data/applyFormula.test.js +26 -26
- package/dist/utils/Data/deleteValues.js +8 -4
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +29 -20
- package/dist/utils/Data/getAutocompleteSource.test.js +87 -81
- package/dist/utils/Data/getDataPath.js +30 -20
- package/dist/utils/Data/getDataPath.test.js +20 -20
- package/dist/utils/Data/getOptions.js +34 -27
- package/dist/utils/Data/getOptions.test.js +28 -28
- package/dist/utils/Data/getSourceData.js +19 -6
- package/dist/utils/Data/getSourceData.test.js +81 -85
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +16 -9
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +15 -11
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +8 -7
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +22 -14
- package/dist/utils/Data/setupFormData.test.js +51 -52
- package/dist/utils/Data/setupRefDataUrlForComponent.js +28 -21
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
- package/dist/utils/FormPage/applyConditionalProperties.js +10 -6
- package/dist/utils/FormPage/applyConditionalProperties.test.js +19 -16
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +35 -35
- package/dist/utils/FormPage/getFormPage.js +17 -16
- package/dist/utils/FormPage/getFormPage.test.js +48 -49
- package/dist/utils/FormPage/getFormPages.js +13 -8
- package/dist/utils/FormPage/getFormPages.test.js +25 -22
- package/dist/utils/FormPage/getPageActions.js +17 -10
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +7 -5
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +5 -3
- package/dist/utils/FormPage/showFormPage.js +8 -4
- 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 +28 -21
- package/dist/utils/FormPage/useComponent.test.js +80 -78
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +7 -6
- package/dist/utils/Format/formatDataForComponent.test.js +78 -50
- package/dist/utils/Format/formatDataForForm.js +8 -6
- package/dist/utils/Format/formatDataForForm.test.js +17 -14
- package/dist/utils/Format/formatDataForPage.js +5 -4
- package/dist/utils/Format/formatDataForPage.test.js +25 -20
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +32 -29
- package/dist/utils/Hub/index.js +2 -2
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +4 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +17 -25
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +17 -15
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +35 -69
- 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 +53 -47
- 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 +21 -23
- package/dist/utils/Operate/runPageOperations.js +9 -9
- package/dist/utils/Operate/runPageOperations.test.js +37 -36
- 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 +28 -22
- 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 +5 -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 +14 -9
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +42 -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 +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 +40 -36
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +5 -3
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +17 -15
- 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 +4 -3
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +5 -3
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +27 -29
- package/dist/utils/Validate/additional/utils.js +24 -11
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +27 -21
- package/dist/utils/Validate/validateCollection.test.js +77 -85
- package/dist/utils/Validate/validateComponent.js +23 -22
- package/dist/utils/Validate/validateComponent.test.js +165 -188
- package/dist/utils/Validate/validateContainer.js +21 -16
- package/dist/utils/Validate/validateContainer.test.js +56 -62
- package/dist/utils/Validate/validateDate.js +23 -17
- package/dist/utils/Validate/validateDate.test.js +32 -31
- package/dist/utils/Validate/validateEmail.js +9 -7
- package/dist/utils/Validate/validateEmail.test.js +26 -26
- package/dist/utils/Validate/validateMultifile.js +7 -5
- package/dist/utils/Validate/validateMultifile.test.js +18 -17
- package/dist/utils/Validate/validatePage.js +24 -20
- package/dist/utils/Validate/validatePage.test.js +215 -227
- package/dist/utils/Validate/validateRegex.js +8 -5
- package/dist/utils/Validate/validateRegex.test.js +17 -17
- package/dist/utils/Validate/validateRequired.js +7 -5
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +7 -5
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +19 -12
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +10 -8
- package/package.json +1 -1
|
@@ -6,21 +6,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _models = require("../../../models");
|
|
8
8
|
var _utils = _interopRequireDefault(require("../../../utils"));
|
|
9
|
-
function _interopRequireDefault(
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
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); }
|
|
11
|
+
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; }
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
15
|
+
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); } // Local imports
|
|
12
16
|
/**
|
|
13
17
|
* @param {boolean} complete - true if task complete
|
|
14
18
|
* @param {boolean} currentPage - true if current page
|
|
15
19
|
* @param {TaskStates.TYPES|string} defaultState - default state to set task
|
|
16
20
|
* @returns {TaskStates.TYPES|string} current task state
|
|
17
21
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
} = _ref;
|
|
23
|
-
let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _models.TaskStates.TYPES.NOT_STARTED;
|
|
22
|
+
var getCurrentTaskState = function getCurrentTaskState(_ref) {
|
|
23
|
+
var complete = _ref.complete,
|
|
24
|
+
currentPage = _ref.currentPage;
|
|
25
|
+
var defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _models.TaskStates.TYPES.NOT_STARTED;
|
|
24
26
|
if (complete) {
|
|
25
27
|
return _models.TaskStates.TYPES.COMPLETE;
|
|
26
28
|
}
|
|
@@ -37,18 +39,18 @@ const getCurrentTaskState = function (_ref) {
|
|
|
37
39
|
* @param {boolean} ignoreSkipped - skipped tasks don't need to have been completed
|
|
38
40
|
* @returns {boolean} true if dependent tasks complete
|
|
39
41
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return mustBeComplete.reduce((allComplete, taskName)
|
|
43
|
-
|
|
44
|
-
if (ignoreSkipped && task
|
|
42
|
+
var allDependentTasksComplete = function allDependentTasksComplete(taskStates, mustBeComplete) {
|
|
43
|
+
var ignoreSkipped = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
44
|
+
return mustBeComplete.reduce(function (allComplete, taskName) {
|
|
45
|
+
var task = taskStates[taskName];
|
|
46
|
+
if (ignoreSkipped && (task === null || task === void 0 ? void 0 : task.state) === _models.TaskStates.TYPES.SKIPPED) {
|
|
45
47
|
return allComplete;
|
|
46
48
|
}
|
|
47
|
-
return allComplete && task
|
|
49
|
+
return allComplete && (task === null || task === void 0 ? void 0 : task.complete);
|
|
48
50
|
}, true);
|
|
49
51
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
var isPreviousTaskComplete = function isPreviousTaskComplete(tasks, taskIndex) {
|
|
53
|
+
var lastTaskState = tasks[taskIndex - 1].state;
|
|
52
54
|
if (lastTaskState === _models.TaskStates.TYPES.COMPLETE) {
|
|
53
55
|
return true;
|
|
54
56
|
}
|
|
@@ -69,9 +71,9 @@ const isPreviousTaskComplete = (tasks, taskIndex) => {
|
|
|
69
71
|
* @returns {TYPES|string} new state
|
|
70
72
|
*/
|
|
71
73
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
var updateTaskState = function updateTaskState(task, taskIndex, taskList, taskStates) {
|
|
75
|
+
var nonSequential = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
76
|
+
var allowFirst = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
|
|
75
77
|
if (taskStates[task.name]) {
|
|
76
78
|
return getCurrentTaskState(taskStates[task.name], task.state);
|
|
77
79
|
}
|
|
@@ -81,7 +83,7 @@ const updateTaskState = function (task, taskIndex, taskList, taskStates) {
|
|
|
81
83
|
}
|
|
82
84
|
return _models.TaskStates.TYPES.NOT_STARTED;
|
|
83
85
|
}
|
|
84
|
-
|
|
86
|
+
var notStarted = allowFirst;
|
|
85
87
|
if (taskIndex) {
|
|
86
88
|
notStarted = isPreviousTaskComplete(taskList, taskIndex);
|
|
87
89
|
}
|
|
@@ -100,12 +102,14 @@ const updateTaskState = function (task, taskIndex, taskList, taskStates) {
|
|
|
100
102
|
* @param {boolean} allowFirst - true if first task can be started
|
|
101
103
|
* @returns {object} - updated section
|
|
102
104
|
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
})
|
|
107
|
-
clone.filter(
|
|
108
|
-
|
|
105
|
+
var updateTasks = function updateTasks(section, taskStates, nonSequential, allowFirst) {
|
|
106
|
+
var clone = section.tasks.map(function (a) {
|
|
107
|
+
return _objectSpread({}, a);
|
|
108
|
+
});
|
|
109
|
+
clone.filter(function (t) {
|
|
110
|
+
return t.state !== _models.TaskStates.TYPES.SKIPPED;
|
|
111
|
+
}).forEach(function (t, index) {
|
|
112
|
+
var task = t;
|
|
109
113
|
task.state = updateTaskState(task, index, clone, taskStates, nonSequential, allowFirst);
|
|
110
114
|
});
|
|
111
115
|
return clone;
|
|
@@ -120,8 +124,9 @@ const updateTasks = (section, taskStates, nonSequential, allowFirst) => {
|
|
|
120
124
|
* @returns {boolean} true if the last non-skipped section is complete, false
|
|
121
125
|
* if not.
|
|
122
126
|
*/
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
var isPreviousSectionComplete = function isPreviousSectionComplete(sections, currentIndex) {
|
|
128
|
+
var _sections;
|
|
129
|
+
var lastTaskState = (_sections = sections[currentIndex - 1]) === null || _sections === void 0 || (_sections = _sections.tasks.slice(-1)[0]) === null || _sections === void 0 ? void 0 : _sections.state;
|
|
125
130
|
if (lastTaskState === _models.TaskStates.TYPES.COMPLETE) {
|
|
126
131
|
return true;
|
|
127
132
|
}
|
|
@@ -139,62 +144,56 @@ const isPreviousSectionComplete = (sections, currentIndex) => {
|
|
|
139
144
|
* @param {object} data - current form data
|
|
140
145
|
* @returns {object[]} - updated sections - note this is a clone
|
|
141
146
|
*/
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
147
|
+
var getUpdatedSectionStates = function getUpdatedSectionStates(sections, taskStates) {
|
|
148
|
+
var nonSequential = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
149
|
+
var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
145
150
|
// Make a clone and handle any hidden sections.
|
|
146
|
-
|
|
147
|
-
|
|
151
|
+
var clone = sections.map(function (section) {
|
|
152
|
+
var showWhen = section.show_when ? [section.show_when].flat() : [];
|
|
148
153
|
if (data && !_utils.default.Condition.meetsAll(showWhen, data)) {
|
|
149
|
-
return {
|
|
150
|
-
...section,
|
|
154
|
+
return _objectSpread(_objectSpread({}, section), {}, {
|
|
151
155
|
skipped: true,
|
|
152
|
-
tasks: section.tasks.map(task
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
156
|
+
tasks: section.tasks.map(function (task) {
|
|
157
|
+
return _objectSpread(_objectSpread({}, task), {}, {
|
|
158
|
+
state: _models.TaskStates.TYPES.SKIPPED
|
|
159
|
+
});
|
|
160
|
+
})
|
|
161
|
+
});
|
|
157
162
|
}
|
|
158
163
|
;
|
|
159
|
-
return {
|
|
160
|
-
...section
|
|
161
|
-
};
|
|
164
|
+
return _objectSpread({}, section);
|
|
162
165
|
});
|
|
163
166
|
|
|
164
167
|
// Now iterate through the clone and handle any hidden tasks.
|
|
165
|
-
clone.forEach(s
|
|
166
|
-
|
|
167
|
-
section.tasks = section.tasks.map(task
|
|
168
|
-
|
|
168
|
+
clone.forEach(function (s) {
|
|
169
|
+
var section = s;
|
|
170
|
+
section.tasks = section.tasks.map(function (task) {
|
|
171
|
+
var showWhen = task.show_when ? [task.show_when].flat() : [];
|
|
169
172
|
if (data && !_utils.default.Condition.meetsAll(showWhen, data)) {
|
|
170
|
-
return {
|
|
171
|
-
...task,
|
|
173
|
+
return _objectSpread(_objectSpread({}, task), {}, {
|
|
172
174
|
state: _models.TaskStates.TYPES.SKIPPED
|
|
173
|
-
};
|
|
175
|
+
});
|
|
174
176
|
}
|
|
175
|
-
return {
|
|
176
|
-
...task
|
|
177
|
-
};
|
|
177
|
+
return _objectSpread({}, task);
|
|
178
178
|
});
|
|
179
179
|
});
|
|
180
180
|
|
|
181
181
|
// Update the taskStates to account for skipped tasks.
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
states[task.name] = {
|
|
188
|
-
...states[task.name],
|
|
182
|
+
var states = _objectSpread({}, taskStates);
|
|
183
|
+
clone.forEach(function (section) {
|
|
184
|
+
section.tasks.filter(function (t) {
|
|
185
|
+
return t.state === _models.TaskStates.TYPES.SKIPPED;
|
|
186
|
+
}).forEach(function (task) {
|
|
187
|
+
states[task.name] = _objectSpread(_objectSpread({}, states[task.name]), {}, {
|
|
189
188
|
state: _models.TaskStates.TYPES.SKIPPED
|
|
190
|
-
};
|
|
189
|
+
});
|
|
191
190
|
});
|
|
192
191
|
});
|
|
193
192
|
|
|
194
193
|
// Now figure out all the task states.
|
|
195
|
-
clone.forEach((s, index)
|
|
196
|
-
|
|
197
|
-
|
|
194
|
+
clone.forEach(function (s, index) {
|
|
195
|
+
var section = s;
|
|
196
|
+
var allowFirst = index === 0 || isPreviousSectionComplete(clone, index);
|
|
198
197
|
section.tasks = updateTasks(section, states, nonSequential, allowFirst);
|
|
199
198
|
});
|
|
200
199
|
return clone;
|
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
var _models = require("../../../models");
|
|
4
4
|
var _getUpdatedSectionStates = _interopRequireDefault(require("./getUpdatedSectionStates"));
|
|
5
|
-
function _interopRequireDefault(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
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); }
|
|
7
|
+
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; }
|
|
8
|
+
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; }
|
|
9
|
+
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; }
|
|
10
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
11
|
+
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); } // Local imports
|
|
12
|
+
describe('components.FormRenderer.helpers.getUpdatedSectionStates', function () {
|
|
13
|
+
describe('sequential tasks', function () {
|
|
14
|
+
it("should set all tasks to '".concat(_models.TaskStates.TYPES.CANNOT_START_YET, "' excluding the first which should be '").concat(_models.TaskStates.TYPES.NOT_STARTED, "'"), function () {
|
|
15
|
+
var SECTIONS = [{
|
|
12
16
|
name: 'Add event details',
|
|
13
17
|
tasks: [{
|
|
14
18
|
name: 'Date, location and mode details',
|
|
@@ -30,15 +34,15 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
30
34
|
pages: ['journeyDetails']
|
|
31
35
|
}]
|
|
32
36
|
}];
|
|
33
|
-
|
|
37
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, {});
|
|
34
38
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
35
39
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
36
40
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
37
41
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
38
42
|
expect(updatedSections[1].tasks[2].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
39
43
|
});
|
|
40
|
-
it(
|
|
41
|
-
|
|
44
|
+
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, "'"), function () {
|
|
45
|
+
var SECTIONS = [{
|
|
42
46
|
name: 'Add event details',
|
|
43
47
|
tasks: [{
|
|
44
48
|
name: 'Date, location and mode details',
|
|
@@ -48,17 +52,17 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
48
52
|
pages: ['officeDetails']
|
|
49
53
|
}]
|
|
50
54
|
}];
|
|
51
|
-
|
|
55
|
+
var TASKS = {
|
|
52
56
|
'Date, location and mode details': {
|
|
53
57
|
complete: true
|
|
54
58
|
}
|
|
55
59
|
};
|
|
56
|
-
|
|
60
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
57
61
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
58
62
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
59
63
|
});
|
|
60
|
-
it(
|
|
61
|
-
|
|
64
|
+
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, " across different sections'"), function () {
|
|
65
|
+
var SECTIONS = [{
|
|
62
66
|
name: 'Add event details',
|
|
63
67
|
tasks: [{
|
|
64
68
|
name: 'Date, location and mode details',
|
|
@@ -77,7 +81,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
77
81
|
pages: ['immigrationDate']
|
|
78
82
|
}]
|
|
79
83
|
}];
|
|
80
|
-
|
|
84
|
+
var TASKS = {
|
|
81
85
|
'Date, location and mode details': {
|
|
82
86
|
complete: true
|
|
83
87
|
},
|
|
@@ -85,14 +89,14 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
85
89
|
complete: true
|
|
86
90
|
}
|
|
87
91
|
};
|
|
88
|
-
|
|
92
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
89
93
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
90
94
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
91
95
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
92
96
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
93
97
|
});
|
|
94
|
-
it(
|
|
95
|
-
|
|
98
|
+
it("should set tasks to '".concat(_models.TaskStates.TYPES.IN_PROGRESS, "' if they have a current page but are not complete"), function () {
|
|
99
|
+
var SECTIONS = [{
|
|
96
100
|
name: 'Add event details',
|
|
97
101
|
tasks: [{
|
|
98
102
|
name: 'Date, location and mode details',
|
|
@@ -102,18 +106,18 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
102
106
|
pages: ['officeDetails']
|
|
103
107
|
}]
|
|
104
108
|
}];
|
|
105
|
-
|
|
109
|
+
var TASKS = {
|
|
106
110
|
'Date, location and mode details': {
|
|
107
111
|
complete: false,
|
|
108
112
|
currentPage: 'eventMode'
|
|
109
113
|
}
|
|
110
114
|
};
|
|
111
|
-
|
|
115
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
112
116
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.IN_PROGRESS);
|
|
113
117
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
114
118
|
});
|
|
115
|
-
it(
|
|
116
|
-
|
|
119
|
+
it("should set the status of any tasks in a section with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"), function () {
|
|
120
|
+
var SECTIONS = [{
|
|
117
121
|
name: 'Add event details',
|
|
118
122
|
tasks: [{
|
|
119
123
|
name: 'Date, location and mode details',
|
|
@@ -137,7 +141,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
137
141
|
pages: ['immigrationDate']
|
|
138
142
|
}]
|
|
139
143
|
}];
|
|
140
|
-
|
|
144
|
+
var TASKS = {
|
|
141
145
|
'Date, location and mode details': {
|
|
142
146
|
complete: true
|
|
143
147
|
},
|
|
@@ -145,18 +149,18 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
145
149
|
complete: true
|
|
146
150
|
}
|
|
147
151
|
};
|
|
148
|
-
|
|
152
|
+
var DATA = {
|
|
149
153
|
field: 'hideMe'
|
|
150
154
|
};
|
|
151
|
-
|
|
155
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
152
156
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
153
157
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
154
158
|
expect(updatedSections[1].skipped).toEqual(true);
|
|
155
159
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
156
160
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
157
161
|
});
|
|
158
|
-
it(
|
|
159
|
-
|
|
162
|
+
it("should set the status of any tasks with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"), function () {
|
|
163
|
+
var SECTIONS = [{
|
|
160
164
|
name: 'Add event details',
|
|
161
165
|
tasks: [{
|
|
162
166
|
name: 'Date, location and mode details',
|
|
@@ -176,15 +180,15 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
176
180
|
}
|
|
177
181
|
}]
|
|
178
182
|
}];
|
|
179
|
-
|
|
183
|
+
var DATA = {
|
|
180
184
|
field: 'hideMe'
|
|
181
185
|
};
|
|
182
|
-
|
|
186
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, {}, false, DATA);
|
|
183
187
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
184
188
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
185
189
|
});
|
|
186
|
-
it(
|
|
187
|
-
|
|
190
|
+
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks within a section have been skipped"), function () {
|
|
191
|
+
var SECTIONS = [{
|
|
188
192
|
name: 'Add event details',
|
|
189
193
|
tasks: [{
|
|
190
194
|
name: 'task one',
|
|
@@ -220,22 +224,22 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
220
224
|
}
|
|
221
225
|
}]
|
|
222
226
|
}];
|
|
223
|
-
|
|
227
|
+
var DATA = {
|
|
224
228
|
field: 'hideMe'
|
|
225
229
|
};
|
|
226
|
-
|
|
230
|
+
var TASKS = {
|
|
227
231
|
'task one': {
|
|
228
232
|
complete: true
|
|
229
233
|
}
|
|
230
234
|
};
|
|
231
|
-
|
|
235
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
232
236
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
233
237
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
234
238
|
expect(updatedSections[0].tasks[2].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
235
239
|
expect(updatedSections[0].tasks[3].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
236
240
|
});
|
|
237
|
-
it(
|
|
238
|
-
|
|
241
|
+
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks within the last section have been skipped"), function () {
|
|
242
|
+
var SECTIONS = [{
|
|
239
243
|
name: 'Add event details',
|
|
240
244
|
tasks: [{
|
|
241
245
|
name: 'task one',
|
|
@@ -261,22 +265,22 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
261
265
|
pages: ['eventDate', 'eventMode']
|
|
262
266
|
}]
|
|
263
267
|
}];
|
|
264
|
-
|
|
268
|
+
var DATA = {
|
|
265
269
|
field: 'showMe'
|
|
266
270
|
};
|
|
267
|
-
|
|
271
|
+
var TASKS = {
|
|
268
272
|
'task one': {
|
|
269
273
|
complete: true
|
|
270
274
|
}
|
|
271
275
|
};
|
|
272
|
-
|
|
276
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
273
277
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
274
278
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
275
279
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
276
280
|
});
|
|
277
281
|
});
|
|
278
|
-
it(
|
|
279
|
-
|
|
282
|
+
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks have been skipped"), function () {
|
|
283
|
+
var SECTIONS = [{
|
|
280
284
|
name: 'Add event details',
|
|
281
285
|
show_when: {
|
|
282
286
|
field: 'field',
|
|
@@ -300,20 +304,20 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
300
304
|
pages: ['immigrationDate']
|
|
301
305
|
}]
|
|
302
306
|
}];
|
|
303
|
-
|
|
304
|
-
|
|
307
|
+
var TASKS = {};
|
|
308
|
+
var DATA = {
|
|
305
309
|
field: 'hideMe'
|
|
306
310
|
};
|
|
307
|
-
|
|
311
|
+
var updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
308
312
|
expect(updatedSections[0].skipped).toEqual(true);
|
|
309
313
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
310
314
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
311
315
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
312
316
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
313
317
|
});
|
|
314
|
-
describe('non-sequential tasks', ()
|
|
315
|
-
|
|
316
|
-
|
|
318
|
+
describe('non-sequential tasks', function () {
|
|
319
|
+
var NON_SEQUENTIAL = true;
|
|
320
|
+
var SECTIONS = [{
|
|
317
321
|
name: 'First',
|
|
318
322
|
tasks: [{
|
|
319
323
|
name: 'Alpha'
|
|
@@ -332,29 +336,31 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
332
336
|
name: 'Delta'
|
|
333
337
|
}]
|
|
334
338
|
}];
|
|
335
|
-
it(
|
|
336
|
-
|
|
339
|
+
it("should set all states to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "', except any that depend on others"), function () {
|
|
340
|
+
var RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, {}, NON_SEQUENTIAL);
|
|
337
341
|
expect(RESULT[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Alpha
|
|
338
342
|
expect(RESULT[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Bravo
|
|
339
343
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
340
344
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
341
345
|
});
|
|
342
|
-
|
|
343
|
-
|
|
346
|
+
|
|
347
|
+
it('should keep dependent state unable to start if any dependencies are not complete', function () {
|
|
348
|
+
var ALPHA_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
344
349
|
Alpha: {
|
|
345
350
|
complete: true
|
|
346
351
|
}
|
|
347
352
|
}, NON_SEQUENTIAL);
|
|
348
353
|
expect(ALPHA_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
349
|
-
|
|
354
|
+
var BRAVO_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
350
355
|
Bravo: {
|
|
351
356
|
complete: true
|
|
352
357
|
}
|
|
353
358
|
}, NON_SEQUENTIAL);
|
|
354
359
|
expect(BRAVO_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
355
360
|
});
|
|
356
|
-
|
|
357
|
-
|
|
361
|
+
|
|
362
|
+
it('should allow dependent state to start if all dependencies are complete', function () {
|
|
363
|
+
var TASKS = {
|
|
358
364
|
'Alpha': {
|
|
359
365
|
complete: true
|
|
360
366
|
},
|
|
@@ -363,12 +369,13 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
363
369
|
},
|
|
364
370
|
'Delta': {}
|
|
365
371
|
};
|
|
366
|
-
|
|
372
|
+
var RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
367
373
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
368
374
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
369
375
|
});
|
|
370
|
-
|
|
371
|
-
|
|
376
|
+
|
|
377
|
+
it('should not allow dependent state to start if incomplete dependencies are skipped, but skipped are not ignored', function () {
|
|
378
|
+
var TASKS = {
|
|
372
379
|
'Alpha': {
|
|
373
380
|
complete: true
|
|
374
381
|
},
|
|
@@ -378,18 +385,17 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
378
385
|
},
|
|
379
386
|
'Delta': {}
|
|
380
387
|
};
|
|
381
|
-
|
|
388
|
+
var RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
382
389
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
383
390
|
});
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
tasks: [{
|
|
388
|
-
...SECTIONS[1].tasks[0],
|
|
391
|
+
|
|
392
|
+
it('should allow dependent state to start if incomplete dependencies are skipped, and skipped are ignored', function () {
|
|
393
|
+
var SKIPPABLE_SECTIONS = [SECTIONS[0], _objectSpread(_objectSpread({}, SECTIONS[1]), {}, {
|
|
394
|
+
tasks: [_objectSpread(_objectSpread({}, SECTIONS[1].tasks[0]), {}, {
|
|
389
395
|
ignoreSkipped: true
|
|
390
|
-
}]
|
|
391
|
-
}, SECTIONS[2]];
|
|
392
|
-
|
|
396
|
+
})]
|
|
397
|
+
}), SECTIONS[2]];
|
|
398
|
+
var TASKS = {
|
|
393
399
|
'Alpha': {
|
|
394
400
|
complete: true
|
|
395
401
|
},
|
|
@@ -399,11 +405,12 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
399
405
|
},
|
|
400
406
|
'Delta': {}
|
|
401
407
|
};
|
|
402
|
-
|
|
408
|
+
var RESULT = (0, _getUpdatedSectionStates.default)(SKIPPABLE_SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
403
409
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
404
410
|
});
|
|
405
|
-
|
|
406
|
-
|
|
411
|
+
|
|
412
|
+
it('should automatically skip tasks that are not shown', function () {
|
|
413
|
+
var SHOW_WHEN_SECTIONS = [{
|
|
407
414
|
name: 'First',
|
|
408
415
|
tasks: [{
|
|
409
416
|
name: 'Alpha'
|
|
@@ -431,7 +438,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
431
438
|
ignoreSkipped: true
|
|
432
439
|
}]
|
|
433
440
|
}];
|
|
434
|
-
|
|
441
|
+
var TASKS = {
|
|
435
442
|
'Alpha': {
|
|
436
443
|
complete: true
|
|
437
444
|
},
|
|
@@ -440,11 +447,11 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
|
440
447
|
},
|
|
441
448
|
'Delta': {}
|
|
442
449
|
};
|
|
443
|
-
|
|
450
|
+
var DATA = {
|
|
444
451
|
echo: 'foxtrot',
|
|
445
452
|
golf: 'hotel'
|
|
446
453
|
};
|
|
447
|
-
|
|
454
|
+
var RESULT = (0, _getUpdatedSectionStates.default)(SHOW_WHEN_SECTIONS, TASKS, NON_SEQUENTIAL, DATA);
|
|
448
455
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
449
456
|
});
|
|
450
457
|
});
|
|
@@ -13,10 +13,10 @@ var _getNextPageId = _interopRequireDefault(require("./getNextPageId"));
|
|
|
13
13
|
var _getPage = _interopRequireDefault(require("./getPage"));
|
|
14
14
|
var _getSubmissionStatus = _interopRequireDefault(require("./getSubmissionStatus"));
|
|
15
15
|
var _getUpdatedSectionStates = _interopRequireDefault(require("./getUpdatedSectionStates"));
|
|
16
|
-
function _interopRequireDefault(
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
// Local imports
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
var helpers = {
|
|
20
20
|
canActionProceed: _canActionProceed.default,
|
|
21
21
|
canCYASubmit: _canCYASubmit.default,
|
|
22
22
|
cleanHiddenNestedData: _cleanHiddenNestedData.default,
|
|
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _FormRenderer = _interopRequireDefault(require("./FormRenderer"));
|
|
8
|
-
function _interopRequireDefault(
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
9
|
var _default = exports.default = _FormRenderer.default;
|