@ukhomeoffice/cop-react-form-renderer 5.45.1 → 5.45.2-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +12 -12
- package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +464 -769
- package/dist/components/CollectionPage/CollectionPage.js +66 -58
- package/dist/components/CollectionPage/CollectionPage.test.js +300 -342
- package/dist/components/CollectionSummary/BannerStrip.js +12 -12
- package/dist/components/CollectionSummary/BannerStrip.test.js +63 -59
- package/dist/components/CollectionSummary/CollectionSummary.js +60 -75
- package/dist/components/CollectionSummary/CollectionSummary.test.js +102 -96
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/SummaryCard.js +93 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +902 -924
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +23 -29
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +61 -73
- package/dist/components/FormComponent/Collection.js +73 -107
- package/dist/components/FormComponent/Collection.test.js +809 -945
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +67 -70
- package/dist/components/FormComponent/FormComponent.test.js +284 -342
- 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 +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +65 -80
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +142 -178
- package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- 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 +9 -9
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -91
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -73
- package/dist/components/FormRenderer/helpers/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +43 -39
- package/dist/components/FormRenderer/onPageAction.test.js +223 -206
- package/dist/components/FormRenderer/onTaskAction.js +9 -13
- package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
- package/dist/components/PageActions/ActionButton.js +12 -15
- package/dist/components/PageActions/ActionButton.test.js +56 -78
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +86 -115
- package/dist/components/SummaryList/GroupAction.js +9 -17
- package/dist/components/SummaryList/GroupAction.test.js +37 -33
- package/dist/components/SummaryList/RowAction.js +11 -16
- package/dist/components/SummaryList/RowAction.test.js +37 -33
- package/dist/components/SummaryList/SummaryList.js +21 -26
- package/dist/components/SummaryList/SummaryList.test.js +143 -166
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
- package/dist/components/SummaryList/SummaryListRow.js +6 -4
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +19 -29
- package/dist/components/TaskList/Task.test.js +83 -76
- package/dist/components/TaskList/TaskList.js +45 -71
- package/dist/components/TaskList/TaskList.test.js +113 -111
- package/dist/components/TaskList/TaskState.js +7 -5
- package/dist/components/TaskList/TaskState.test.js +52 -45
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +58 -79
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +32 -72
- package/dist/context/ValidationContext/ValidationContext.test.js +47 -59
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +9 -10
- package/dist/hooks/useAxios.js +14 -40
- package/dist/hooks/useGetRequest.js +61 -97
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +26 -39
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +13 -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 +44 -38
- package/dist/models/TaskStates.js +30 -28
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -60
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +79 -88
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +146 -124
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +24 -24
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +1 -1
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -17
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +9 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +27 -22
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getQuickEditPage.js +19 -19
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +12 -16
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +29 -30
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +17 -17
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +17 -17
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +27 -32
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +88 -94
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -70
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
- package/dist/utils/Component/getDefaultValue.js +6 -8
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +7 -7
- package/dist/utils/Condition/meetsAllConditions.test.js +17 -17
- package/dist/utils/Condition/meetsCondition.js +14 -17
- package/dist/utils/Condition/meetsCondition.test.js +376 -376
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +19 -25
- package/dist/utils/Data/getOptions.test.js +20 -20
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/refDataToOptions.js +10 -13
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +13 -21
- package/dist/utils/Data/setupFormData.test.js +51 -50
- package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
- package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
- package/dist/utils/FormPage/getFormPage.js +15 -16
- package/dist/utils/FormPage/getFormPage.test.js +47 -46
- package/dist/utils/FormPage/getFormPages.js +7 -12
- package/dist/utils/FormPage/getFormPages.test.js +20 -23
- package/dist/utils/FormPage/getPageActions.js +9 -15
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getPageTitle.js +2 -2
- package/dist/utils/FormPage/getPageTitle.test.js +22 -22
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +1 -1
- package/dist/utils/FormPage/showFormPage.js +3 -7
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +78 -79
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +5 -6
- package/dist/utils/Format/formatDataForComponent.test.js +50 -77
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -15
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -23
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +28 -31
- package/dist/utils/Hub/index.js +1 -1
- 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 +24 -16
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -46
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +35 -36
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +21 -26
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +19 -25
- package/dist/utils/Validate/validateCollection.test.js +74 -66
- package/dist/utils/Validate/validateComponent.js +17 -15
- package/dist/utils/Validate/validateComponent.test.js +167 -146
- package/dist/utils/Validate/validateContainer.js +14 -19
- package/dist/utils/Validate/validateContainer.test.js +49 -45
- package/dist/utils/Validate/validateDate.js +11 -17
- package/dist/utils/Validate/validateDate.test.js +28 -29
- package/dist/utils/Validate/validateEmail.js +6 -8
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +17 -18
- package/dist/utils/Validate/validatePage.test.js +185 -182
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +7 -14
- package/dist/utils/Validate/validateTime.test.js +14 -14
- package/dist/utils/index.js +7 -9
- package/package.json +1 -1
|
@@ -3,16 +3,12 @@
|
|
|
3
3
|
var _models = require("../../../models");
|
|
4
4
|
var _getUpdatedSectionStates = _interopRequireDefault(require("./getUpdatedSectionStates"));
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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 = [{
|
|
6
|
+
// Local imports
|
|
7
|
+
|
|
8
|
+
describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
9
|
+
describe('sequential tasks', () => {
|
|
10
|
+
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, "'"), () => {
|
|
11
|
+
const SECTIONS = [{
|
|
16
12
|
name: 'Add event details',
|
|
17
13
|
tasks: [{
|
|
18
14
|
name: 'Date, location and mode details',
|
|
@@ -34,15 +30,15 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
34
30
|
pages: ['journeyDetails']
|
|
35
31
|
}]
|
|
36
32
|
}];
|
|
37
|
-
|
|
33
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, {});
|
|
38
34
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
39
35
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
40
36
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
41
37
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
42
38
|
expect(updatedSections[1].tasks[2].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
43
39
|
});
|
|
44
|
-
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, "'"),
|
|
45
|
-
|
|
40
|
+
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, "'"), () => {
|
|
41
|
+
const SECTIONS = [{
|
|
46
42
|
name: 'Add event details',
|
|
47
43
|
tasks: [{
|
|
48
44
|
name: 'Date, location and mode details',
|
|
@@ -52,17 +48,17 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
52
48
|
pages: ['officeDetails']
|
|
53
49
|
}]
|
|
54
50
|
}];
|
|
55
|
-
|
|
51
|
+
const TASKS = {
|
|
56
52
|
'Date, location and mode details': {
|
|
57
53
|
complete: true
|
|
58
54
|
}
|
|
59
55
|
};
|
|
60
|
-
|
|
56
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
61
57
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
62
58
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
63
59
|
});
|
|
64
|
-
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, " across different sections'"),
|
|
65
|
-
|
|
60
|
+
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, " across different sections'"), () => {
|
|
61
|
+
const SECTIONS = [{
|
|
66
62
|
name: 'Add event details',
|
|
67
63
|
tasks: [{
|
|
68
64
|
name: 'Date, location and mode details',
|
|
@@ -81,7 +77,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
81
77
|
pages: ['immigrationDate']
|
|
82
78
|
}]
|
|
83
79
|
}];
|
|
84
|
-
|
|
80
|
+
const TASKS = {
|
|
85
81
|
'Date, location and mode details': {
|
|
86
82
|
complete: true
|
|
87
83
|
},
|
|
@@ -89,14 +85,14 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
89
85
|
complete: true
|
|
90
86
|
}
|
|
91
87
|
};
|
|
92
|
-
|
|
88
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
93
89
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
94
90
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
95
91
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
96
92
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
97
93
|
});
|
|
98
|
-
it("should set tasks to '".concat(_models.TaskStates.TYPES.IN_PROGRESS, "' if they have a current page but are not complete"),
|
|
99
|
-
|
|
94
|
+
it("should set tasks to '".concat(_models.TaskStates.TYPES.IN_PROGRESS, "' if they have a current page but are not complete"), () => {
|
|
95
|
+
const SECTIONS = [{
|
|
100
96
|
name: 'Add event details',
|
|
101
97
|
tasks: [{
|
|
102
98
|
name: 'Date, location and mode details',
|
|
@@ -106,18 +102,18 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
106
102
|
pages: ['officeDetails']
|
|
107
103
|
}]
|
|
108
104
|
}];
|
|
109
|
-
|
|
105
|
+
const TASKS = {
|
|
110
106
|
'Date, location and mode details': {
|
|
111
107
|
complete: false,
|
|
112
108
|
currentPage: 'eventMode'
|
|
113
109
|
}
|
|
114
110
|
};
|
|
115
|
-
|
|
111
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
116
112
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.IN_PROGRESS);
|
|
117
113
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
118
114
|
});
|
|
119
|
-
it("should set the status of any tasks in a section with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"),
|
|
120
|
-
|
|
115
|
+
it("should set the status of any tasks in a section with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"), () => {
|
|
116
|
+
const SECTIONS = [{
|
|
121
117
|
name: 'Add event details',
|
|
122
118
|
tasks: [{
|
|
123
119
|
name: 'Date, location and mode details',
|
|
@@ -141,7 +137,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
141
137
|
pages: ['immigrationDate']
|
|
142
138
|
}]
|
|
143
139
|
}];
|
|
144
|
-
|
|
140
|
+
const TASKS = {
|
|
145
141
|
'Date, location and mode details': {
|
|
146
142
|
complete: true
|
|
147
143
|
},
|
|
@@ -149,18 +145,18 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
149
145
|
complete: true
|
|
150
146
|
}
|
|
151
147
|
};
|
|
152
|
-
|
|
148
|
+
const DATA = {
|
|
153
149
|
field: 'hideMe'
|
|
154
150
|
};
|
|
155
|
-
|
|
151
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
156
152
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
157
153
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
158
154
|
expect(updatedSections[1].skipped).toEqual(true);
|
|
159
155
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
160
156
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
161
157
|
});
|
|
162
|
-
it("should set the status of any tasks with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"),
|
|
163
|
-
|
|
158
|
+
it("should set the status of any tasks with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"), () => {
|
|
159
|
+
const SECTIONS = [{
|
|
164
160
|
name: 'Add event details',
|
|
165
161
|
tasks: [{
|
|
166
162
|
name: 'Date, location and mode details',
|
|
@@ -180,15 +176,15 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
180
176
|
}
|
|
181
177
|
}]
|
|
182
178
|
}];
|
|
183
|
-
|
|
179
|
+
const DATA = {
|
|
184
180
|
field: 'hideMe'
|
|
185
181
|
};
|
|
186
|
-
|
|
182
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, {}, false, DATA);
|
|
187
183
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
188
184
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
189
185
|
});
|
|
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
|
-
|
|
186
|
+
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks within a section have been skipped"), () => {
|
|
187
|
+
const SECTIONS = [{
|
|
192
188
|
name: 'Add event details',
|
|
193
189
|
tasks: [{
|
|
194
190
|
name: 'task one',
|
|
@@ -224,22 +220,22 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
224
220
|
}
|
|
225
221
|
}]
|
|
226
222
|
}];
|
|
227
|
-
|
|
223
|
+
const DATA = {
|
|
228
224
|
field: 'hideMe'
|
|
229
225
|
};
|
|
230
|
-
|
|
226
|
+
const TASKS = {
|
|
231
227
|
'task one': {
|
|
232
228
|
complete: true
|
|
233
229
|
}
|
|
234
230
|
};
|
|
235
|
-
|
|
231
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
236
232
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
237
233
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
238
234
|
expect(updatedSections[0].tasks[2].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
239
235
|
expect(updatedSections[0].tasks[3].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
240
236
|
});
|
|
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
|
-
|
|
237
|
+
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"), () => {
|
|
238
|
+
const SECTIONS = [{
|
|
243
239
|
name: 'Add event details',
|
|
244
240
|
tasks: [{
|
|
245
241
|
name: 'task one',
|
|
@@ -265,22 +261,22 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
265
261
|
pages: ['eventDate', 'eventMode']
|
|
266
262
|
}]
|
|
267
263
|
}];
|
|
268
|
-
|
|
264
|
+
const DATA = {
|
|
269
265
|
field: 'showMe'
|
|
270
266
|
};
|
|
271
|
-
|
|
267
|
+
const TASKS = {
|
|
272
268
|
'task one': {
|
|
273
269
|
complete: true
|
|
274
270
|
}
|
|
275
271
|
};
|
|
276
|
-
|
|
272
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
277
273
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
278
274
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
279
275
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
280
276
|
});
|
|
281
277
|
});
|
|
282
|
-
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks have been skipped"),
|
|
283
|
-
|
|
278
|
+
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks have been skipped"), () => {
|
|
279
|
+
const SECTIONS = [{
|
|
284
280
|
name: 'Add event details',
|
|
285
281
|
show_when: {
|
|
286
282
|
field: 'field',
|
|
@@ -304,20 +300,20 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
304
300
|
pages: ['immigrationDate']
|
|
305
301
|
}]
|
|
306
302
|
}];
|
|
307
|
-
|
|
308
|
-
|
|
303
|
+
const TASKS = {};
|
|
304
|
+
const DATA = {
|
|
309
305
|
field: 'hideMe'
|
|
310
306
|
};
|
|
311
|
-
|
|
307
|
+
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
312
308
|
expect(updatedSections[0].skipped).toEqual(true);
|
|
313
309
|
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
314
310
|
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
315
311
|
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
316
312
|
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
317
313
|
});
|
|
318
|
-
describe('non-sequential tasks',
|
|
319
|
-
|
|
320
|
-
|
|
314
|
+
describe('non-sequential tasks', () => {
|
|
315
|
+
const NON_SEQUENTIAL = true;
|
|
316
|
+
const SECTIONS = [{
|
|
321
317
|
name: 'First',
|
|
322
318
|
tasks: [{
|
|
323
319
|
name: 'Alpha'
|
|
@@ -336,22 +332,22 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
336
332
|
name: 'Delta'
|
|
337
333
|
}]
|
|
338
334
|
}];
|
|
339
|
-
it("should set all states to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "', except any that depend on others"),
|
|
340
|
-
|
|
335
|
+
it("should set all states to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "', except any that depend on others"), () => {
|
|
336
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, {}, NON_SEQUENTIAL);
|
|
341
337
|
expect(RESULT[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Alpha
|
|
342
338
|
expect(RESULT[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Bravo
|
|
343
339
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
344
340
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
345
341
|
});
|
|
346
342
|
|
|
347
|
-
it('should keep dependent state unable to start if any dependencies are not complete',
|
|
348
|
-
|
|
343
|
+
it('should keep dependent state unable to start if any dependencies are not complete', () => {
|
|
344
|
+
const ALPHA_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
349
345
|
Alpha: {
|
|
350
346
|
complete: true
|
|
351
347
|
}
|
|
352
348
|
}, NON_SEQUENTIAL);
|
|
353
349
|
expect(ALPHA_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
354
|
-
|
|
350
|
+
const BRAVO_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
355
351
|
Bravo: {
|
|
356
352
|
complete: true
|
|
357
353
|
}
|
|
@@ -359,8 +355,8 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
359
355
|
expect(BRAVO_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
360
356
|
});
|
|
361
357
|
|
|
362
|
-
it('should allow dependent state to start if all dependencies are complete',
|
|
363
|
-
|
|
358
|
+
it('should allow dependent state to start if all dependencies are complete', () => {
|
|
359
|
+
const TASKS = {
|
|
364
360
|
'Alpha': {
|
|
365
361
|
complete: true
|
|
366
362
|
},
|
|
@@ -369,13 +365,13 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
369
365
|
},
|
|
370
366
|
'Delta': {}
|
|
371
367
|
};
|
|
372
|
-
|
|
368
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
373
369
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
374
370
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
375
371
|
});
|
|
376
372
|
|
|
377
|
-
it('should not allow dependent state to start if incomplete dependencies are skipped, but skipped are not ignored',
|
|
378
|
-
|
|
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,19 @@ 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
387
|
|
|
392
|
-
it('should allow dependent state to start if incomplete dependencies are skipped, and skipped are ignored',
|
|
393
|
-
|
|
394
|
-
|
|
388
|
+
it('should allow dependent state to start if incomplete dependencies are skipped, and skipped are ignored', () => {
|
|
389
|
+
const SKIPPABLE_SECTIONS = [SECTIONS[0], {
|
|
390
|
+
...SECTIONS[1],
|
|
391
|
+
tasks: [{
|
|
392
|
+
...SECTIONS[1].tasks[0],
|
|
395
393
|
ignoreSkipped: true
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
|
|
394
|
+
}]
|
|
395
|
+
}, SECTIONS[2]];
|
|
396
|
+
const TASKS = {
|
|
399
397
|
'Alpha': {
|
|
400
398
|
complete: true
|
|
401
399
|
},
|
|
@@ -405,12 +403,12 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
405
403
|
},
|
|
406
404
|
'Delta': {}
|
|
407
405
|
};
|
|
408
|
-
|
|
406
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SKIPPABLE_SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
409
407
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
410
408
|
});
|
|
411
409
|
|
|
412
|
-
it('should automatically skip tasks that are not shown',
|
|
413
|
-
|
|
410
|
+
it('should automatically skip tasks that are not shown', () => {
|
|
411
|
+
const SHOW_WHEN_SECTIONS = [{
|
|
414
412
|
name: 'First',
|
|
415
413
|
tasks: [{
|
|
416
414
|
name: 'Alpha'
|
|
@@ -438,7 +436,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
438
436
|
ignoreSkipped: true
|
|
439
437
|
}]
|
|
440
438
|
}];
|
|
441
|
-
|
|
439
|
+
const TASKS = {
|
|
442
440
|
'Alpha': {
|
|
443
441
|
complete: true
|
|
444
442
|
},
|
|
@@ -447,11 +445,11 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
447
445
|
},
|
|
448
446
|
'Delta': {}
|
|
449
447
|
};
|
|
450
|
-
|
|
448
|
+
const DATA = {
|
|
451
449
|
echo: 'foxtrot',
|
|
452
450
|
golf: 'hotel'
|
|
453
451
|
};
|
|
454
|
-
|
|
452
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SHOW_WHEN_SECTIONS, TASKS, NON_SEQUENTIAL, DATA);
|
|
455
453
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
456
454
|
});
|
|
457
455
|
});
|
|
@@ -16,7 +16,7 @@ var _getUpdatedSectionStates = _interopRequireDefault(require("./getUpdatedSecti
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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,
|
|
@@ -9,17 +9,13 @@ var _utils = _interopRequireDefault(require("../../utils"));
|
|
|
9
9
|
var _handlers = _interopRequireDefault(require("./handlers"));
|
|
10
10
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
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; }
|
|
15
|
-
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; }
|
|
16
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
17
|
-
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
|
+
// Local imports.
|
|
13
|
+
|
|
18
14
|
/**
|
|
19
15
|
*
|
|
20
16
|
* @param {*} action
|
|
21
17
|
*/
|
|
22
|
-
|
|
18
|
+
const onCYAAction = (setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting) => {
|
|
23
19
|
// Check to see whether the action is able to proceed, which in
|
|
24
20
|
// in the case of a submission will validate the fields in the page.
|
|
25
21
|
if (action.type === _models.PageAction.TYPES.SUBMIT && hub !== _models.HubFormats.TASK) {
|
|
@@ -27,36 +23,40 @@ var onCYAAction = function onCYAAction(setPagePoint, action, pages, validate, co
|
|
|
27
23
|
if (_helpers.default.canCYASubmit(pages, validate.pages) && !submitting) {
|
|
28
24
|
setSubmitting(true);
|
|
29
25
|
// Submit.
|
|
30
|
-
|
|
31
|
-
pages
|
|
32
|
-
components
|
|
33
|
-
},
|
|
26
|
+
const submissionData = _utils.default.Format.form({
|
|
27
|
+
pages,
|
|
28
|
+
components
|
|
29
|
+
}, {
|
|
30
|
+
...data
|
|
31
|
+
}, _models.EventTypes.SUBMIT);
|
|
34
32
|
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
|
|
35
33
|
setData(submissionData);
|
|
36
34
|
// Now submit the data to the backend...
|
|
37
|
-
hooks.onSubmit(action.type, submissionData,
|
|
35
|
+
hooks.onSubmit(action.type, submissionData, () => {
|
|
38
36
|
hooks.onFormComplete();
|
|
39
37
|
setSubmitting(false);
|
|
40
|
-
},
|
|
38
|
+
}, errors => {
|
|
41
39
|
setSubmitting(false);
|
|
42
40
|
_handlers.default.submissionError(errors, addErrors);
|
|
43
41
|
});
|
|
44
42
|
}
|
|
45
43
|
} else {
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
const shouldValidate = !(Object.prototype.hasOwnProperty.call(action, 'validate') && !action.validate);
|
|
45
|
+
const canSubmit = shouldValidate ? _helpers.default.canCYASubmit(currentTask.fullPages, validate.pages) : true;
|
|
48
46
|
if (action.type === _models.PageAction.TYPES.SAVE_AND_CONTINUE && hub === _models.HubFormats.TASK) {
|
|
49
47
|
if (canSubmit) {
|
|
50
|
-
|
|
51
|
-
pages
|
|
52
|
-
components
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
const submissionData = _utils.default.Format.form({
|
|
49
|
+
pages,
|
|
50
|
+
components
|
|
51
|
+
}, {
|
|
52
|
+
...data
|
|
53
|
+
}, _models.EventTypes.SUBMIT);
|
|
54
|
+
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
|
|
55
|
+
setData(submissionData);
|
|
56
|
+
hooks.onSubmit(action.type, submissionData, () => {
|
|
57
57
|
setSubmitting(false);
|
|
58
58
|
onPageChange(_models.FormPages.HUB);
|
|
59
|
-
},
|
|
59
|
+
}, errors => {
|
|
60
60
|
setSubmitting(false);
|
|
61
61
|
_handlers.default.submissionError(errors, addErrors);
|
|
62
62
|
});
|
|
@@ -66,17 +66,19 @@ var onCYAAction = function onCYAAction(setPagePoint, action, pages, validate, co
|
|
|
66
66
|
setPagePoint('submit');
|
|
67
67
|
if (canSubmit) {
|
|
68
68
|
// Submit.
|
|
69
|
-
|
|
70
|
-
pages
|
|
71
|
-
components
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
const submissionData = _utils.default.Format.form({
|
|
70
|
+
pages,
|
|
71
|
+
components
|
|
72
|
+
}, {
|
|
73
|
+
...data
|
|
74
|
+
}, _models.EventTypes.SUBMIT);
|
|
75
|
+
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
|
|
76
|
+
setData(submissionData);
|
|
75
77
|
// Now submit the data to the backend...
|
|
76
|
-
hooks.onSubmit(action.type,
|
|
78
|
+
hooks.onSubmit(action.type, submissionData, () => {
|
|
77
79
|
hooks.onFormComplete();
|
|
78
80
|
setSubmitting(false);
|
|
79
|
-
},
|
|
81
|
+
}, errors => {
|
|
80
82
|
setSubmitting(false);
|
|
81
83
|
_handlers.default.submissionError(errors, addErrors);
|
|
82
84
|
});
|
|
@@ -84,16 +86,18 @@ var onCYAAction = function onCYAAction(setPagePoint, action, pages, validate, co
|
|
|
84
86
|
}
|
|
85
87
|
if (action.type === _models.PageAction.TYPES.SAVE_AND_NAVIGATE) {
|
|
86
88
|
if (canSubmit) {
|
|
87
|
-
|
|
88
|
-
pages
|
|
89
|
-
components
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
const submissionData = _utils.default.Format.form({
|
|
90
|
+
pages,
|
|
91
|
+
components
|
|
92
|
+
}, {
|
|
93
|
+
...data
|
|
94
|
+
}, _models.EventTypes.SUBMIT);
|
|
95
|
+
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
|
|
96
|
+
setData(submissionData);
|
|
97
|
+
hooks.onSubmit(action.type, submissionData, () => {
|
|
94
98
|
setSubmitting(false);
|
|
95
99
|
onPageChange(action.page);
|
|
96
|
-
},
|
|
100
|
+
}, errors => {
|
|
97
101
|
setSubmitting(false);
|
|
98
102
|
_handlers.default.submissionError(errors, addErrors);
|
|
99
103
|
});
|
|
@@ -101,20 +105,22 @@ var onCYAAction = function onCYAAction(setPagePoint, action, pages, validate, co
|
|
|
101
105
|
}
|
|
102
106
|
if (action.type === _models.PageAction.TYPES.SAVE_AND_RETURN) {
|
|
103
107
|
if (canSubmit) {
|
|
104
|
-
|
|
105
|
-
pages
|
|
106
|
-
components
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
const submissionData = _utils.default.Format.form({
|
|
109
|
+
pages,
|
|
110
|
+
components
|
|
111
|
+
}, {
|
|
112
|
+
...data
|
|
113
|
+
}, _models.EventTypes.SUBMIT);
|
|
114
|
+
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, false);
|
|
115
|
+
setData(submissionData);
|
|
116
|
+
hooks.onSubmit(action.type, submissionData, () => {
|
|
111
117
|
if (type === _models.FormTypes.TASK) {
|
|
112
118
|
onPageChange(undefined);
|
|
113
119
|
} else {
|
|
114
120
|
onPageChange(_models.FormPages.HUB);
|
|
115
121
|
}
|
|
116
122
|
setSubmitting(false);
|
|
117
|
-
},
|
|
123
|
+
}, errors => {
|
|
118
124
|
setSubmitting(false);
|
|
119
125
|
_handlers.default.submissionError(errors, addErrors);
|
|
120
126
|
});
|
|
@@ -126,10 +132,12 @@ var onCYAAction = function onCYAAction(setPagePoint, action, pages, validate, co
|
|
|
126
132
|
setSubmitting(false);
|
|
127
133
|
}
|
|
128
134
|
if (action.type === _models.PageAction.TYPES.CANCEL) {
|
|
129
|
-
|
|
130
|
-
pages
|
|
131
|
-
components
|
|
132
|
-
},
|
|
135
|
+
const formData = _utils.default.Format.form({
|
|
136
|
+
pages,
|
|
137
|
+
components
|
|
138
|
+
}, {
|
|
139
|
+
...data
|
|
140
|
+
}, _models.EventTypes.CANCEL);
|
|
133
141
|
hooks.onCancel(formData);
|
|
134
142
|
setSubmitting(false);
|
|
135
143
|
}
|