@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +19 -27
- package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
- 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
|
@@ -6,23 +6,24 @@ 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
|
-
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); }
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
10
|
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
11
|
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(
|
|
14
|
-
function _toPropertyKey(
|
|
15
|
-
function _toPrimitive(
|
|
12
|
+
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; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
+
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); } // Local imports
|
|
16
15
|
/**
|
|
17
16
|
* @param {boolean} complete - true if task complete
|
|
18
17
|
* @param {boolean} currentPage - true if current page
|
|
19
18
|
* @param {TaskStates.TYPES|string} defaultState - default state to set task
|
|
20
19
|
* @returns {TaskStates.TYPES|string} current task state
|
|
21
20
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
const getCurrentTaskState = function (_ref) {
|
|
22
|
+
let {
|
|
23
|
+
complete,
|
|
24
|
+
currentPage
|
|
25
|
+
} = _ref;
|
|
26
|
+
let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _models.TaskStates.TYPES.NOT_STARTED;
|
|
26
27
|
if (complete) {
|
|
27
28
|
return _models.TaskStates.TYPES.COMPLETE;
|
|
28
29
|
}
|
|
@@ -39,18 +40,18 @@ var getCurrentTaskState = function getCurrentTaskState(_ref) {
|
|
|
39
40
|
* @param {boolean} ignoreSkipped - skipped tasks don't need to have been completed
|
|
40
41
|
* @returns {boolean} true if dependent tasks complete
|
|
41
42
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return mustBeComplete.reduce(
|
|
45
|
-
|
|
43
|
+
const allDependentTasksComplete = function (taskStates, mustBeComplete) {
|
|
44
|
+
let ignoreSkipped = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
45
|
+
return mustBeComplete.reduce((allComplete, taskName) => {
|
|
46
|
+
const task = taskStates[taskName];
|
|
46
47
|
if (ignoreSkipped && (task === null || task === void 0 ? void 0 : task.state) === _models.TaskStates.TYPES.SKIPPED) {
|
|
47
48
|
return allComplete;
|
|
48
49
|
}
|
|
49
50
|
return allComplete && (task === null || task === void 0 ? void 0 : task.complete);
|
|
50
51
|
}, true);
|
|
51
52
|
};
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
const isPreviousTaskComplete = (tasks, taskIndex) => {
|
|
54
|
+
const lastTaskState = tasks[taskIndex - 1].state;
|
|
54
55
|
if (lastTaskState === _models.TaskStates.TYPES.COMPLETE) {
|
|
55
56
|
return true;
|
|
56
57
|
}
|
|
@@ -71,9 +72,9 @@ var isPreviousTaskComplete = function isPreviousTaskComplete(tasks, taskIndex) {
|
|
|
71
72
|
* @returns {TYPES|string} new state
|
|
72
73
|
*/
|
|
73
74
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const updateTaskState = function (task, taskIndex, taskList, taskStates) {
|
|
76
|
+
let nonSequential = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
77
|
+
let allowFirst = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
|
|
77
78
|
if (taskStates[task.name]) {
|
|
78
79
|
return getCurrentTaskState(taskStates[task.name], task.state);
|
|
79
80
|
}
|
|
@@ -83,7 +84,7 @@ var updateTaskState = function updateTaskState(task, taskIndex, taskList, taskSt
|
|
|
83
84
|
}
|
|
84
85
|
return _models.TaskStates.TYPES.NOT_STARTED;
|
|
85
86
|
}
|
|
86
|
-
|
|
87
|
+
let notStarted = allowFirst;
|
|
87
88
|
if (taskIndex) {
|
|
88
89
|
notStarted = isPreviousTaskComplete(taskList, taskIndex);
|
|
89
90
|
}
|
|
@@ -102,14 +103,10 @@ var updateTaskState = function updateTaskState(task, taskIndex, taskList, taskSt
|
|
|
102
103
|
* @param {boolean} allowFirst - true if first task can be started
|
|
103
104
|
* @returns {object} - updated section
|
|
104
105
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
clone.filter(function (t) {
|
|
110
|
-
return t.state !== _models.TaskStates.TYPES.SKIPPED;
|
|
111
|
-
}).forEach(function (t, index) {
|
|
112
|
-
var task = t;
|
|
106
|
+
const updateTasks = (section, taskStates, nonSequential, allowFirst) => {
|
|
107
|
+
const clone = section.tasks.map(a => _objectSpread({}, a));
|
|
108
|
+
clone.filter(t => t.state !== _models.TaskStates.TYPES.SKIPPED).forEach((t, index) => {
|
|
109
|
+
const task = t;
|
|
113
110
|
task.state = updateTaskState(task, index, clone, taskStates, nonSequential, allowFirst);
|
|
114
111
|
});
|
|
115
112
|
return clone;
|
|
@@ -124,9 +121,9 @@ var updateTasks = function updateTasks(section, taskStates, nonSequential, allow
|
|
|
124
121
|
* @returns {boolean} true if the last non-skipped section is complete, false
|
|
125
122
|
* if not.
|
|
126
123
|
*/
|
|
127
|
-
|
|
124
|
+
const isPreviousSectionComplete = (sections, currentIndex) => {
|
|
128
125
|
var _sections;
|
|
129
|
-
|
|
126
|
+
const lastTaskState = (_sections = sections[currentIndex - 1]) === null || _sections === void 0 || (_sections = _sections.tasks.slice(-1)[0]) === null || _sections === void 0 ? void 0 : _sections.state;
|
|
130
127
|
if (lastTaskState === _models.TaskStates.TYPES.COMPLETE) {
|
|
131
128
|
return true;
|
|
132
129
|
}
|
|
@@ -144,20 +141,18 @@ var isPreviousSectionComplete = function isPreviousSectionComplete(sections, cur
|
|
|
144
141
|
* @param {object} data - current form data
|
|
145
142
|
* @returns {object[]} - updated sections - note this is a clone
|
|
146
143
|
*/
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
144
|
+
const getUpdatedSectionStates = function (sections, taskStates) {
|
|
145
|
+
let nonSequential = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
146
|
+
let data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
150
147
|
// Make a clone and handle any hidden sections.
|
|
151
|
-
|
|
152
|
-
|
|
148
|
+
const clone = sections.map(section => {
|
|
149
|
+
const showWhen = section.show_when ? [section.show_when].flat() : [];
|
|
153
150
|
if (data && !_utils.default.Condition.meetsAll(showWhen, data)) {
|
|
154
151
|
return _objectSpread(_objectSpread({}, section), {}, {
|
|
155
152
|
skipped: true,
|
|
156
|
-
tasks: section.tasks.map(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
});
|
|
160
|
-
})
|
|
153
|
+
tasks: section.tasks.map(task => _objectSpread(_objectSpread({}, task), {}, {
|
|
154
|
+
state: _models.TaskStates.TYPES.SKIPPED
|
|
155
|
+
}))
|
|
161
156
|
});
|
|
162
157
|
}
|
|
163
158
|
;
|
|
@@ -165,10 +160,10 @@ var getUpdatedSectionStates = function getUpdatedSectionStates(sections, taskSta
|
|
|
165
160
|
});
|
|
166
161
|
|
|
167
162
|
// Now iterate through the clone and handle any hidden tasks.
|
|
168
|
-
clone.forEach(
|
|
169
|
-
|
|
170
|
-
section.tasks = section.tasks.map(
|
|
171
|
-
|
|
163
|
+
clone.forEach(s => {
|
|
164
|
+
const section = s;
|
|
165
|
+
section.tasks = section.tasks.map(task => {
|
|
166
|
+
const showWhen = task.show_when ? [task.show_when].flat() : [];
|
|
172
167
|
if (data && !_utils.default.Condition.meetsAll(showWhen, data)) {
|
|
173
168
|
return _objectSpread(_objectSpread({}, task), {}, {
|
|
174
169
|
state: _models.TaskStates.TYPES.SKIPPED
|
|
@@ -179,11 +174,9 @@ var getUpdatedSectionStates = function getUpdatedSectionStates(sections, taskSta
|
|
|
179
174
|
});
|
|
180
175
|
|
|
181
176
|
// Update the taskStates to account for skipped tasks.
|
|
182
|
-
|
|
183
|
-
clone.forEach(
|
|
184
|
-
section.tasks.filter(
|
|
185
|
-
return t.state === _models.TaskStates.TYPES.SKIPPED;
|
|
186
|
-
}).forEach(function (task) {
|
|
177
|
+
const states = _objectSpread({}, taskStates);
|
|
178
|
+
clone.forEach(section => {
|
|
179
|
+
section.tasks.filter(t => t.state === _models.TaskStates.TYPES.SKIPPED).forEach(task => {
|
|
187
180
|
states[task.name] = _objectSpread(_objectSpread({}, states[task.name]), {}, {
|
|
188
181
|
state: _models.TaskStates.TYPES.SKIPPED
|
|
189
182
|
});
|
|
@@ -191,9 +184,9 @@ var getUpdatedSectionStates = function getUpdatedSectionStates(sections, taskSta
|
|
|
191
184
|
});
|
|
192
185
|
|
|
193
186
|
// Now figure out all the task states.
|
|
194
|
-
clone.forEach(
|
|
195
|
-
|
|
196
|
-
|
|
187
|
+
clone.forEach((s, index) => {
|
|
188
|
+
const section = s;
|
|
189
|
+
const allowFirst = index === 0 || isPreviousSectionComplete(clone, index);
|
|
197
190
|
section.tasks = updateTasks(section, states, nonSequential, allowFirst);
|
|
198
191
|
});
|
|
199
192
|
return clone;
|
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var _models = require("../../../models");
|
|
4
4
|
var _getUpdatedSectionStates = _interopRequireDefault(require("./getUpdatedSectionStates"));
|
|
5
|
-
function _interopRequireDefault(
|
|
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); }
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
6
|
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
7
|
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(
|
|
10
|
-
function _toPropertyKey(
|
|
11
|
-
function _toPrimitive(
|
|
12
|
-
describe('components.FormRenderer.helpers.getUpdatedSectionStates',
|
|
13
|
-
describe('sequential tasks',
|
|
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, "'"),
|
|
15
|
-
|
|
8
|
+
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; }
|
|
9
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
10
|
+
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); } // Local imports
|
|
11
|
+
describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
12
|
+
describe('sequential tasks', () => {
|
|
13
|
+
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, "'"), () => {
|
|
14
|
+
const SECTIONS = [{
|
|
16
15
|
name: 'Add event details',
|
|
17
16
|
tasks: [{
|
|
18
17
|
name: 'Date, location and mode details',
|
|
@@ -34,15 +33,15 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
34
33
|
pages: ['journeyDetails']
|
|
35
34
|
}]
|
|
36
35
|
}];
|
|
37
|
-
|
|
36
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, {});
|
|
38
37
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
39
38
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
40
39
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
41
40
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
42
41
|
expect(updatedSections[1].tasks[2].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
43
42
|
});
|
|
44
|
-
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, "'"),
|
|
45
|
-
|
|
43
|
+
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, "'"), () => {
|
|
44
|
+
const SECTIONS = [{
|
|
46
45
|
name: 'Add event details',
|
|
47
46
|
tasks: [{
|
|
48
47
|
name: 'Date, location and mode details',
|
|
@@ -52,17 +51,17 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
52
51
|
pages: ['officeDetails']
|
|
53
52
|
}]
|
|
54
53
|
}];
|
|
55
|
-
|
|
54
|
+
const TASKS = {
|
|
56
55
|
'Date, location and mode details': {
|
|
57
56
|
complete: true
|
|
58
57
|
}
|
|
59
58
|
};
|
|
60
|
-
|
|
59
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
61
60
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
62
61
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
63
62
|
});
|
|
64
|
-
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, " across different sections'"),
|
|
65
|
-
|
|
63
|
+
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, " across different sections'"), () => {
|
|
64
|
+
const SECTIONS = [{
|
|
66
65
|
name: 'Add event details',
|
|
67
66
|
tasks: [{
|
|
68
67
|
name: 'Date, location and mode details',
|
|
@@ -81,7 +80,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
81
80
|
pages: ['immigrationDate']
|
|
82
81
|
}]
|
|
83
82
|
}];
|
|
84
|
-
|
|
83
|
+
const TASKS = {
|
|
85
84
|
'Date, location and mode details': {
|
|
86
85
|
complete: true
|
|
87
86
|
},
|
|
@@ -89,14 +88,14 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
89
88
|
complete: true
|
|
90
89
|
}
|
|
91
90
|
};
|
|
92
|
-
|
|
91
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
93
92
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
94
93
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
95
94
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
96
95
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
97
96
|
});
|
|
98
|
-
it("should set tasks to '".concat(_models.TaskStates.TYPES.IN_PROGRESS, "' if they have a current page but are not complete"),
|
|
99
|
-
|
|
97
|
+
it("should set tasks to '".concat(_models.TaskStates.TYPES.IN_PROGRESS, "' if they have a current page but are not complete"), () => {
|
|
98
|
+
const SECTIONS = [{
|
|
100
99
|
name: 'Add event details',
|
|
101
100
|
tasks: [{
|
|
102
101
|
name: 'Date, location and mode details',
|
|
@@ -106,18 +105,18 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
106
105
|
pages: ['officeDetails']
|
|
107
106
|
}]
|
|
108
107
|
}];
|
|
109
|
-
|
|
108
|
+
const TASKS = {
|
|
110
109
|
'Date, location and mode details': {
|
|
111
110
|
complete: false,
|
|
112
111
|
currentPage: 'eventMode'
|
|
113
112
|
}
|
|
114
113
|
};
|
|
115
|
-
|
|
114
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
116
115
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.IN_PROGRESS);
|
|
117
116
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
118
117
|
});
|
|
119
|
-
it("should set the status of any tasks in a section with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"),
|
|
120
|
-
|
|
118
|
+
it("should set the status of any tasks in a section with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"), () => {
|
|
119
|
+
const SECTIONS = [{
|
|
121
120
|
name: 'Add event details',
|
|
122
121
|
tasks: [{
|
|
123
122
|
name: 'Date, location and mode details',
|
|
@@ -141,7 +140,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
141
140
|
pages: ['immigrationDate']
|
|
142
141
|
}]
|
|
143
142
|
}];
|
|
144
|
-
|
|
143
|
+
const TASKS = {
|
|
145
144
|
'Date, location and mode details': {
|
|
146
145
|
complete: true
|
|
147
146
|
},
|
|
@@ -149,18 +148,18 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
149
148
|
complete: true
|
|
150
149
|
}
|
|
151
150
|
};
|
|
152
|
-
|
|
151
|
+
const DATA = {
|
|
153
152
|
field: 'hideMe'
|
|
154
153
|
};
|
|
155
|
-
|
|
154
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
156
155
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
157
156
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
158
157
|
expect(updatedSections[1].skipped).toEqual(true);
|
|
159
158
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
160
159
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
161
160
|
});
|
|
162
|
-
it("should set the status of any tasks with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"),
|
|
163
|
-
|
|
161
|
+
it("should set the status of any tasks with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"), () => {
|
|
162
|
+
const SECTIONS = [{
|
|
164
163
|
name: 'Add event details',
|
|
165
164
|
tasks: [{
|
|
166
165
|
name: 'Date, location and mode details',
|
|
@@ -180,15 +179,15 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
180
179
|
}
|
|
181
180
|
}]
|
|
182
181
|
}];
|
|
183
|
-
|
|
182
|
+
const DATA = {
|
|
184
183
|
field: 'hideMe'
|
|
185
184
|
};
|
|
186
|
-
|
|
185
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, {}, false, DATA);
|
|
187
186
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
188
187
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
189
188
|
});
|
|
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"),
|
|
191
|
-
|
|
189
|
+
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks within a section have been skipped"), () => {
|
|
190
|
+
const SECTIONS = [{
|
|
192
191
|
name: 'Add event details',
|
|
193
192
|
tasks: [{
|
|
194
193
|
name: 'task one',
|
|
@@ -224,22 +223,22 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
224
223
|
}
|
|
225
224
|
}]
|
|
226
225
|
}];
|
|
227
|
-
|
|
226
|
+
const DATA = {
|
|
228
227
|
field: 'hideMe'
|
|
229
228
|
};
|
|
230
|
-
|
|
229
|
+
const TASKS = {
|
|
231
230
|
'task one': {
|
|
232
231
|
complete: true
|
|
233
232
|
}
|
|
234
233
|
};
|
|
235
|
-
|
|
234
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
236
235
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
237
236
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
238
237
|
expect(updatedSections[0].tasks[2].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
239
238
|
expect(updatedSections[0].tasks[3].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
240
239
|
});
|
|
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"),
|
|
242
|
-
|
|
240
|
+
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"), () => {
|
|
241
|
+
const SECTIONS = [{
|
|
243
242
|
name: 'Add event details',
|
|
244
243
|
tasks: [{
|
|
245
244
|
name: 'task one',
|
|
@@ -265,22 +264,22 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
265
264
|
pages: ['eventDate', 'eventMode']
|
|
266
265
|
}]
|
|
267
266
|
}];
|
|
268
|
-
|
|
267
|
+
const DATA = {
|
|
269
268
|
field: 'showMe'
|
|
270
269
|
};
|
|
271
|
-
|
|
270
|
+
const TASKS = {
|
|
272
271
|
'task one': {
|
|
273
272
|
complete: true
|
|
274
273
|
}
|
|
275
274
|
};
|
|
276
|
-
|
|
275
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
277
276
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
278
277
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
279
278
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
280
279
|
});
|
|
281
280
|
});
|
|
282
|
-
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks have been skipped"),
|
|
283
|
-
|
|
281
|
+
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks have been skipped"), () => {
|
|
282
|
+
const SECTIONS = [{
|
|
284
283
|
name: 'Add event details',
|
|
285
284
|
show_when: {
|
|
286
285
|
field: 'field',
|
|
@@ -304,20 +303,20 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
304
303
|
pages: ['immigrationDate']
|
|
305
304
|
}]
|
|
306
305
|
}];
|
|
307
|
-
|
|
308
|
-
|
|
306
|
+
const TASKS = {};
|
|
307
|
+
const DATA = {
|
|
309
308
|
field: 'hideMe'
|
|
310
309
|
};
|
|
311
|
-
|
|
310
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
312
311
|
expect(updatedSections[0].skipped).toEqual(true);
|
|
313
312
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
314
313
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
315
314
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
316
315
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
317
316
|
});
|
|
318
|
-
describe('non-sequential tasks',
|
|
319
|
-
|
|
320
|
-
|
|
317
|
+
describe('non-sequential tasks', () => {
|
|
318
|
+
const NON_SEQUENTIAL = true;
|
|
319
|
+
const SECTIONS = [{
|
|
321
320
|
name: 'First',
|
|
322
321
|
tasks: [{
|
|
323
322
|
name: 'Alpha'
|
|
@@ -336,31 +335,29 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
336
335
|
name: 'Delta'
|
|
337
336
|
}]
|
|
338
337
|
}];
|
|
339
|
-
it("should set all states to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "', except any that depend on others"),
|
|
340
|
-
|
|
338
|
+
it("should set all states to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "', except any that depend on others"), () => {
|
|
339
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, {}, NON_SEQUENTIAL);
|
|
341
340
|
expect(RESULT[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Alpha
|
|
342
341
|
expect(RESULT[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Bravo
|
|
343
342
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
344
343
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
345
344
|
});
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
var ALPHA_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
345
|
+
it('should keep dependent state unable to start if any dependencies are not complete', () => {
|
|
346
|
+
const ALPHA_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
349
347
|
Alpha: {
|
|
350
348
|
complete: true
|
|
351
349
|
}
|
|
352
350
|
}, NON_SEQUENTIAL);
|
|
353
351
|
expect(ALPHA_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
354
|
-
|
|
352
|
+
const BRAVO_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
355
353
|
Bravo: {
|
|
356
354
|
complete: true
|
|
357
355
|
}
|
|
358
356
|
}, NON_SEQUENTIAL);
|
|
359
357
|
expect(BRAVO_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
360
358
|
});
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
var TASKS = {
|
|
359
|
+
it('should allow dependent state to start if all dependencies are complete', () => {
|
|
360
|
+
const TASKS = {
|
|
364
361
|
'Alpha': {
|
|
365
362
|
complete: true
|
|
366
363
|
},
|
|
@@ -369,13 +366,12 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
369
366
|
},
|
|
370
367
|
'Delta': {}
|
|
371
368
|
};
|
|
372
|
-
|
|
369
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
373
370
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
374
371
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
375
372
|
});
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
var TASKS = {
|
|
373
|
+
it('should not allow dependent state to start if incomplete dependencies are skipped, but skipped are not ignored', () => {
|
|
374
|
+
const TASKS = {
|
|
379
375
|
'Alpha': {
|
|
380
376
|
complete: true
|
|
381
377
|
},
|
|
@@ -385,17 +381,16 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
385
381
|
},
|
|
386
382
|
'Delta': {}
|
|
387
383
|
};
|
|
388
|
-
|
|
384
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
389
385
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
390
386
|
});
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
var SKIPPABLE_SECTIONS = [SECTIONS[0], _objectSpread(_objectSpread({}, SECTIONS[1]), {}, {
|
|
387
|
+
it('should allow dependent state to start if incomplete dependencies are skipped, and skipped are ignored', () => {
|
|
388
|
+
const SKIPPABLE_SECTIONS = [SECTIONS[0], _objectSpread(_objectSpread({}, SECTIONS[1]), {}, {
|
|
394
389
|
tasks: [_objectSpread(_objectSpread({}, SECTIONS[1].tasks[0]), {}, {
|
|
395
390
|
ignoreSkipped: true
|
|
396
391
|
})]
|
|
397
392
|
}), SECTIONS[2]];
|
|
398
|
-
|
|
393
|
+
const TASKS = {
|
|
399
394
|
'Alpha': {
|
|
400
395
|
complete: true
|
|
401
396
|
},
|
|
@@ -405,12 +400,11 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
405
400
|
},
|
|
406
401
|
'Delta': {}
|
|
407
402
|
};
|
|
408
|
-
|
|
403
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SKIPPABLE_SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
409
404
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
410
405
|
});
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
var SHOW_WHEN_SECTIONS = [{
|
|
406
|
+
it('should automatically skip tasks that are not shown', () => {
|
|
407
|
+
const SHOW_WHEN_SECTIONS = [{
|
|
414
408
|
name: 'First',
|
|
415
409
|
tasks: [{
|
|
416
410
|
name: 'Alpha'
|
|
@@ -438,7 +432,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
438
432
|
ignoreSkipped: true
|
|
439
433
|
}]
|
|
440
434
|
}];
|
|
441
|
-
|
|
435
|
+
const TASKS = {
|
|
442
436
|
'Alpha': {
|
|
443
437
|
complete: true
|
|
444
438
|
},
|
|
@@ -447,11 +441,11 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
447
441
|
},
|
|
448
442
|
'Delta': {}
|
|
449
443
|
};
|
|
450
|
-
|
|
444
|
+
const DATA = {
|
|
451
445
|
echo: 'foxtrot',
|
|
452
446
|
golf: 'hotel'
|
|
453
447
|
};
|
|
454
|
-
|
|
448
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SHOW_WHEN_SECTIONS, TASKS, NON_SEQUENTIAL, DATA);
|
|
455
449
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
456
450
|
});
|
|
457
451
|
});
|
|
@@ -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(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
17
|
// Local imports
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
const 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(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
var _default = exports.default = _FormRenderer.default;
|