@ukhomeoffice/cop-react-form-renderer 6.0.6-peter → 6.7.0-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.scss +2 -2
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +75 -59
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +15 -14
- package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
- package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
- package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
- package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
- package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.scss +1 -1
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +54 -56
- package/dist/components/CollectionSummary/RenderListView.scss +10 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
- package/dist/components/CollectionSummary/SummaryCard.js +135 -145
- package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
- package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
- package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
- package/dist/components/FormComponent/Collection.js +81 -108
- package/dist/components/FormComponent/Collection.test.js +909 -943
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +80 -71
- package/dist/components/FormComponent/FormComponent.test.js +353 -414
- 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.scss +1 -1
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +150 -183
- package/dist/components/FormRenderer/FormRenderer.scss +1 -1
- 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 +15 -15
- 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 +103 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
- package/dist/components/FormRenderer/helpers/index.js +2 -4
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +50 -48
- package/dist/components/FormRenderer/onPageAction.test.js +241 -217
- 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.scss +2 -2
- 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.scss +1 -1
- 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 +57 -80
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +65 -72
- package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
- 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 +27 -40
- 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 +29 -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 -61
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
- 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/getComponentRowForCYA.js +11 -11
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -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/getErrorsForCollection.js +55 -0
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +3 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
- 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 -72
- 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 +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +28 -19
- package/dist/utils/Condition/meetsCondition.test.js +476 -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 +29 -25
- package/dist/utils/Data/getOptions.test.js +93 -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/nestInRefdataOptions.js +42 -0
- package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
- 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/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- 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/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +2 -4
- 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 +77 -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 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -16
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- 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 -52
- 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 -27
- 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/mustBeUniqueInCollection.js +8 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
- 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 +16 -19
- package/dist/utils/Validate/validateContainer.test.js +84 -45
- package/dist/utils/Validate/validateDate.js +15 -21
- package/dist/utils/Validate/validateDate.test.js +31 -32
- 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 +24 -18
- package/dist/utils/Validate/validatePage.test.js +263 -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 +11 -18
- package/dist/utils/Validate/validateTime.test.js +16 -16
- package/dist/utils/index.js +7 -9
- package/package.json +5 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -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,31 +332,29 @@ 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
|
-
|
|
347
|
-
|
|
348
|
-
var ALPHA_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
342
|
+
it('should keep dependent state unable to start if any dependencies are not complete', () => {
|
|
343
|
+
const ALPHA_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
349
344
|
Alpha: {
|
|
350
345
|
complete: true
|
|
351
346
|
}
|
|
352
347
|
}, NON_SEQUENTIAL);
|
|
353
348
|
expect(ALPHA_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
354
|
-
|
|
349
|
+
const BRAVO_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
355
350
|
Bravo: {
|
|
356
351
|
complete: true
|
|
357
352
|
}
|
|
358
353
|
}, NON_SEQUENTIAL);
|
|
359
354
|
expect(BRAVO_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
360
355
|
});
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
var TASKS = {
|
|
356
|
+
it('should allow dependent state to start if all dependencies are complete', () => {
|
|
357
|
+
const TASKS = {
|
|
364
358
|
'Alpha': {
|
|
365
359
|
complete: true
|
|
366
360
|
},
|
|
@@ -369,13 +363,12 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
369
363
|
},
|
|
370
364
|
'Delta': {}
|
|
371
365
|
};
|
|
372
|
-
|
|
366
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
373
367
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
374
368
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
375
369
|
});
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
var TASKS = {
|
|
370
|
+
it('should not allow dependent state to start if incomplete dependencies are skipped, but skipped are not ignored', () => {
|
|
371
|
+
const TASKS = {
|
|
379
372
|
'Alpha': {
|
|
380
373
|
complete: true
|
|
381
374
|
},
|
|
@@ -385,17 +378,18 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
385
378
|
},
|
|
386
379
|
'Delta': {}
|
|
387
380
|
};
|
|
388
|
-
|
|
381
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
389
382
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
390
383
|
});
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
tasks: [
|
|
384
|
+
it('should allow dependent state to start if incomplete dependencies are skipped, and skipped are ignored', () => {
|
|
385
|
+
const SKIPPABLE_SECTIONS = [SECTIONS[0], {
|
|
386
|
+
...SECTIONS[1],
|
|
387
|
+
tasks: [{
|
|
388
|
+
...SECTIONS[1].tasks[0],
|
|
395
389
|
ignoreSkipped: true
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
|
|
390
|
+
}]
|
|
391
|
+
}, SECTIONS[2]];
|
|
392
|
+
const TASKS = {
|
|
399
393
|
'Alpha': {
|
|
400
394
|
complete: true
|
|
401
395
|
},
|
|
@@ -405,12 +399,11 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
405
399
|
},
|
|
406
400
|
'Delta': {}
|
|
407
401
|
};
|
|
408
|
-
|
|
402
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SKIPPABLE_SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
409
403
|
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
410
404
|
});
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
var SHOW_WHEN_SECTIONS = [{
|
|
405
|
+
it('should automatically skip tasks that are not shown', () => {
|
|
406
|
+
const SHOW_WHEN_SECTIONS = [{
|
|
414
407
|
name: 'First',
|
|
415
408
|
tasks: [{
|
|
416
409
|
name: 'Alpha'
|
|
@@ -438,7 +431,7 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
438
431
|
ignoreSkipped: true
|
|
439
432
|
}]
|
|
440
433
|
}];
|
|
441
|
-
|
|
434
|
+
const TASKS = {
|
|
442
435
|
'Alpha': {
|
|
443
436
|
complete: true
|
|
444
437
|
},
|
|
@@ -447,11 +440,11 @@ describe('components.FormRenderer.helpers.getUpdatedSectionStates', function ()
|
|
|
447
440
|
},
|
|
448
441
|
'Delta': {}
|
|
449
442
|
};
|
|
450
|
-
|
|
443
|
+
const DATA = {
|
|
451
444
|
echo: 'foxtrot',
|
|
452
445
|
golf: 'hotel'
|
|
453
446
|
};
|
|
454
|
-
|
|
447
|
+
const RESULT = (0, _getUpdatedSectionStates.default)(SHOW_WHEN_SECTIONS, TASKS, NON_SEQUENTIAL, DATA);
|
|
455
448
|
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
456
449
|
});
|
|
457
450
|
});
|
|
@@ -13,11 +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
|
-
var _clearOutUncompletedRoutes = _interopRequireDefault(require("./clearOutUncompletedRoutes"));
|
|
17
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
17
|
// Local imports
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
const helpers = {
|
|
21
20
|
canActionProceed: _canActionProceed.default,
|
|
22
21
|
canCYASubmit: _canCYASubmit.default,
|
|
23
22
|
cleanHiddenNestedData: _cleanHiddenNestedData.default,
|
|
@@ -26,7 +25,6 @@ var helpers = {
|
|
|
26
25
|
getNextPageId: _getNextPageId.default,
|
|
27
26
|
getPage: _getPage.default,
|
|
28
27
|
getSubmissionStatus: _getSubmissionStatus.default,
|
|
29
|
-
getUpdatedSectionStates: _getUpdatedSectionStates.default
|
|
30
|
-
clearOutUncompletedRoutes: _clearOutUncompletedRoutes.default
|
|
28
|
+
getUpdatedSectionStates: _getUpdatedSectionStates.default
|
|
31
29
|
};
|
|
32
30
|
var _default = exports.default = helpers;
|
|
@@ -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
|
}
|