@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
|
@@ -7,26 +7,22 @@ exports.default = void 0;
|
|
|
7
7
|
var _models = require("../../models");
|
|
8
8
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
-
|
|
11
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
15
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
16
|
-
var onTaskAction = function onTaskAction(currentTask, pages, setCurrentTask, hubDetails, data, onPageChange) {
|
|
10
|
+
const onTaskAction = (currentTask, pages, setCurrentTask, hubDetails, data, onPageChange) => {
|
|
17
11
|
if (currentTask) {
|
|
18
|
-
|
|
12
|
+
const task = currentTask;
|
|
19
13
|
task.fullPages = [];
|
|
20
|
-
task.pages.forEach(
|
|
14
|
+
task.pages.forEach(page => {
|
|
21
15
|
task.fullPages.push(_helpers.default.getPage(page, pages));
|
|
22
16
|
});
|
|
23
17
|
setCurrentTask(currentTask);
|
|
24
|
-
|
|
18
|
+
const state = {
|
|
19
|
+
...task
|
|
20
|
+
};
|
|
25
21
|
if (task.state === _models.TaskStates.TYPES.COMPLETE && !task.alwaysShowFirstPage) {
|
|
26
22
|
if (hubDetails !== null && hubDetails !== void 0 && hubDetails.noTaskCYAs) {
|
|
27
23
|
// If the task is complete and there are no CYA's then show user first page
|
|
28
24
|
/* eslint-disable prefer-destructuring */
|
|
29
|
-
|
|
25
|
+
const currentPage = data.formStatus.tasks[currentTask.name].currentPage;
|
|
30
26
|
onPageChange(task.pages[0] || currentPage);
|
|
31
27
|
} else if (task.customCYA) {
|
|
32
28
|
onPageChange(task.customCYA);
|
|
@@ -34,9 +30,9 @@ var onTaskAction = function onTaskAction(currentTask, pages, setCurrentTask, hub
|
|
|
34
30
|
onPageChange(_models.FormPages.CYA, state);
|
|
35
31
|
}
|
|
36
32
|
} else if (task.state === _models.TaskStates.TYPES.IN_PROGRESS && !task.alwaysShowFirstPage) {
|
|
37
|
-
|
|
33
|
+
const currentPage = data.formStatus.tasks[currentTask.name].currentPage;
|
|
38
34
|
/* eslint-enable prefer-destructuring */
|
|
39
|
-
onPageChange(
|
|
35
|
+
onPageChange(currentPage || currentTask.pages[0], state);
|
|
40
36
|
} else if (task.firstPage) {
|
|
41
37
|
onPageChange(task.firstPage, state);
|
|
42
38
|
} else {
|
|
@@ -4,39 +4,31 @@ var _models = require("../../models");
|
|
|
4
4
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
5
5
|
var _onTaskAction = _interopRequireDefault(require("./onTaskAction"));
|
|
6
6
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
reset: function reset() {
|
|
23
|
-
this.getPageArgs = [];
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
describe('components.FormRenderer.onTaskAction', function () {
|
|
28
|
-
var setCurrentTaskArgs = [];
|
|
29
|
-
var mockSetCurrentTask = function mockSetCurrentTask(task) {
|
|
7
|
+
jest.mock('./helpers', () => ({
|
|
8
|
+
getPageArgs: [],
|
|
9
|
+
getPage(page, pages) {
|
|
10
|
+
this.getPageArgs.push({
|
|
11
|
+
page,
|
|
12
|
+
pages
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
reset() {
|
|
16
|
+
this.getPageArgs = [];
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
describe('components.FormRenderer.onTaskAction', () => {
|
|
20
|
+
let setCurrentTaskArgs = [];
|
|
21
|
+
const mockSetCurrentTask = task => {
|
|
30
22
|
setCurrentTaskArgs.push(task);
|
|
31
23
|
};
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
let onPageChangeArgs = [];
|
|
25
|
+
const mockOnPageChange = (page, state) => {
|
|
34
26
|
onPageChangeArgs.push({
|
|
35
|
-
page
|
|
36
|
-
state
|
|
27
|
+
page,
|
|
28
|
+
state
|
|
37
29
|
});
|
|
38
30
|
};
|
|
39
|
-
|
|
31
|
+
const PAGES = [{
|
|
40
32
|
id: 'page1'
|
|
41
33
|
}, {
|
|
42
34
|
id: 'page2'
|
|
@@ -45,7 +37,7 @@ describe('components.FormRenderer.onTaskAction', function () {
|
|
|
45
37
|
}, {
|
|
46
38
|
id: 'customCya'
|
|
47
39
|
}];
|
|
48
|
-
|
|
40
|
+
const DATA = {
|
|
49
41
|
formStatus: {
|
|
50
42
|
tasks: {
|
|
51
43
|
task1: {
|
|
@@ -58,7 +50,7 @@ describe('components.FormRenderer.onTaskAction', function () {
|
|
|
58
50
|
}
|
|
59
51
|
}
|
|
60
52
|
};
|
|
61
|
-
|
|
53
|
+
const ARGS = {
|
|
62
54
|
currentTask: null,
|
|
63
55
|
pages: PAGES,
|
|
64
56
|
setCurrentTask: mockSetCurrentTask,
|
|
@@ -66,70 +58,76 @@ describe('components.FormRenderer.onTaskAction', function () {
|
|
|
66
58
|
data: DATA,
|
|
67
59
|
onPageChange: mockOnPageChange
|
|
68
60
|
};
|
|
69
|
-
|
|
61
|
+
const genericChecks = currentTask => {
|
|
70
62
|
expect(_helpers.default.getPageArgs.length).toEqual(currentTask.pages.length);
|
|
71
63
|
expect(currentTask.fullPages.length).toEqual(currentTask.pages.length);
|
|
72
64
|
expect(setCurrentTaskArgs.length).toEqual(1);
|
|
73
65
|
expect(setCurrentTaskArgs[0]).toEqual(currentTask);
|
|
74
66
|
};
|
|
75
|
-
beforeEach(
|
|
67
|
+
beforeEach(() => {
|
|
76
68
|
setCurrentTaskArgs = [];
|
|
77
69
|
onPageChangeArgs = [];
|
|
78
70
|
_helpers.default.reset();
|
|
79
71
|
});
|
|
80
|
-
it('should do nothing if currentTask is null',
|
|
72
|
+
it('should do nothing if currentTask is null', () => {
|
|
81
73
|
_onTaskAction.default.apply(void 0, Object.values(ARGS));
|
|
82
74
|
expect(_helpers.default.getPageArgs.length).toEqual(0);
|
|
83
75
|
expect(setCurrentTaskArgs.length).toEqual(0);
|
|
84
76
|
expect(onPageChangeArgs.length).toEqual(0);
|
|
85
77
|
});
|
|
86
|
-
describe("when currentTask has a state of ".concat(_models.TaskStates.TYPES.COMPLETE),
|
|
87
|
-
|
|
78
|
+
describe("when currentTask has a state of ".concat(_models.TaskStates.TYPES.COMPLETE), () => {
|
|
79
|
+
const TASK = {
|
|
88
80
|
name: 'task1',
|
|
89
81
|
state: _models.TaskStates.TYPES.COMPLETE,
|
|
90
82
|
pages: ['page1', 'page2', 'page3']
|
|
91
83
|
};
|
|
92
|
-
it('should handle task CYAs not being shown',
|
|
93
|
-
|
|
84
|
+
it('should handle task CYAs not being shown', () => {
|
|
85
|
+
const CUSTOM_ARGS = {
|
|
86
|
+
...ARGS,
|
|
94
87
|
currentTask: TASK,
|
|
95
88
|
hubDetails: {
|
|
96
89
|
noTaskCYAs: true
|
|
97
90
|
}
|
|
98
|
-
}
|
|
91
|
+
};
|
|
99
92
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
100
93
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
101
94
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
102
95
|
expect(onPageChangeArgs[0].page).toEqual(CUSTOM_ARGS.currentTask.pages[0]);
|
|
103
96
|
});
|
|
104
|
-
it('should handle task CYAs not being shown and no pages being provided on currentTask',
|
|
105
|
-
|
|
106
|
-
|
|
97
|
+
it('should handle task CYAs not being shown and no pages being provided on currentTask', () => {
|
|
98
|
+
const CUSTOM_ARGS = {
|
|
99
|
+
...ARGS,
|
|
100
|
+
currentTask: {
|
|
101
|
+
...TASK,
|
|
107
102
|
pages: []
|
|
108
|
-
}
|
|
103
|
+
},
|
|
109
104
|
hubDetails: {
|
|
110
105
|
noTaskCYAs: true
|
|
111
106
|
}
|
|
112
|
-
}
|
|
107
|
+
};
|
|
113
108
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
114
109
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
115
110
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
116
111
|
expect(onPageChangeArgs[0].page).toEqual(CUSTOM_ARGS.data.formStatus.tasks[CUSTOM_ARGS.currentTask.name].currentPage);
|
|
117
112
|
});
|
|
118
|
-
it('should handle a custom CYA being provided',
|
|
119
|
-
|
|
120
|
-
|
|
113
|
+
it('should handle a custom CYA being provided', () => {
|
|
114
|
+
const CUSTOM_ARGS = {
|
|
115
|
+
...ARGS,
|
|
116
|
+
currentTask: {
|
|
117
|
+
...TASK,
|
|
121
118
|
customCYA: 'customCya'
|
|
122
|
-
}
|
|
123
|
-
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
124
121
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
125
122
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
126
123
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
127
124
|
expect(onPageChangeArgs[0].page).toEqual(CUSTOM_ARGS.currentTask.customCYA);
|
|
128
125
|
});
|
|
129
|
-
it('should handle navigation to a normal CYA page',
|
|
130
|
-
|
|
126
|
+
it('should handle navigation to a normal CYA page', () => {
|
|
127
|
+
const CUSTOM_ARGS = {
|
|
128
|
+
...ARGS,
|
|
131
129
|
currentTask: TASK
|
|
132
|
-
}
|
|
130
|
+
};
|
|
133
131
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
134
132
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
135
133
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
@@ -137,65 +135,69 @@ describe('components.FormRenderer.onTaskAction', function () {
|
|
|
137
135
|
expect(onPageChangeArgs[0].state).toEqual(CUSTOM_ARGS.currentTask);
|
|
138
136
|
});
|
|
139
137
|
});
|
|
140
|
-
describe("when currentTask has a state of ".concat(_models.TaskStates.TYPES.IN_PROGRESS),
|
|
141
|
-
it('should handle page change when formStatus has a current page for the task',
|
|
142
|
-
|
|
138
|
+
describe("when currentTask has a state of ".concat(_models.TaskStates.TYPES.IN_PROGRESS), () => {
|
|
139
|
+
it('should handle page change when formStatus has a current page for the task', () => {
|
|
140
|
+
const TASK = {
|
|
143
141
|
name: 'task1',
|
|
144
142
|
state: _models.TaskStates.TYPES.IN_PROGRESS,
|
|
145
143
|
pages: ['page1', 'page2', 'page3']
|
|
146
144
|
};
|
|
147
|
-
|
|
145
|
+
const CUSTOM_ARGS = {
|
|
146
|
+
...ARGS,
|
|
148
147
|
currentTask: TASK
|
|
149
|
-
}
|
|
148
|
+
};
|
|
150
149
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
151
150
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
152
151
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
153
152
|
expect(onPageChangeArgs[0].page).toEqual(CUSTOM_ARGS.data.formStatus.tasks[CUSTOM_ARGS.currentTask.name].currentPage);
|
|
154
153
|
expect(onPageChangeArgs[0].state).toEqual(CUSTOM_ARGS.currentTask);
|
|
155
154
|
});
|
|
156
|
-
it('should handle page change when formStatus does not have a current page for the task',
|
|
157
|
-
|
|
155
|
+
it('should handle page change when formStatus does not have a current page for the task', () => {
|
|
156
|
+
const TASK = {
|
|
158
157
|
name: 'taskNoCurrentPage',
|
|
159
158
|
state: _models.TaskStates.TYPES.IN_PROGRESS,
|
|
160
159
|
pages: ['page1', 'page2', 'page3']
|
|
161
160
|
};
|
|
162
|
-
|
|
161
|
+
const CUSTOM_ARGS = {
|
|
162
|
+
...ARGS,
|
|
163
163
|
currentTask: TASK
|
|
164
|
-
}
|
|
164
|
+
};
|
|
165
165
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
166
166
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
167
167
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
168
168
|
expect(onPageChangeArgs[0].page).toEqual(CUSTOM_ARGS.currentTask.pages[0]);
|
|
169
169
|
expect(onPageChangeArgs[0].state).toEqual(CUSTOM_ARGS.currentTask);
|
|
170
170
|
});
|
|
171
|
-
it('should navigate to firstPage if alwaysShowFirstPage is set if state is in progress',
|
|
172
|
-
|
|
171
|
+
it('should navigate to firstPage if alwaysShowFirstPage is set if state is in progress', () => {
|
|
172
|
+
const TASK = {
|
|
173
173
|
name: 'taskalwaysShowFirstPageInProgress',
|
|
174
174
|
state: _models.TaskStates.TYPES.IN_PROGRESS,
|
|
175
175
|
firstPage: 'page2',
|
|
176
176
|
alwaysShowFirstPage: true,
|
|
177
177
|
pages: ['page1', 'page2', 'page3']
|
|
178
178
|
};
|
|
179
|
-
|
|
179
|
+
const CUSTOM_ARGS = {
|
|
180
|
+
...ARGS,
|
|
180
181
|
currentTask: TASK
|
|
181
|
-
}
|
|
182
|
+
};
|
|
182
183
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
183
184
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
184
185
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
185
186
|
expect(onPageChangeArgs[0].page).toEqual(CUSTOM_ARGS.currentTask.pages[1]);
|
|
186
187
|
expect(onPageChangeArgs[0].state).toEqual(CUSTOM_ARGS.currentTask);
|
|
187
188
|
});
|
|
188
|
-
it('should navigate to firstPage if alwaysShowFirstPage is set if state is in progress',
|
|
189
|
-
|
|
189
|
+
it('should navigate to firstPage if alwaysShowFirstPage is set if state is in progress', () => {
|
|
190
|
+
const TASK = {
|
|
190
191
|
name: 'taskalwaysShowFirstPageComplete',
|
|
191
192
|
state: _models.TaskStates.TYPES.COMPLETE,
|
|
192
193
|
firstPage: 'page2',
|
|
193
194
|
alwaysShowFirstPage: true,
|
|
194
195
|
pages: ['page1', 'page2', 'page3']
|
|
195
196
|
};
|
|
196
|
-
|
|
197
|
+
const CUSTOM_ARGS = {
|
|
198
|
+
...ARGS,
|
|
197
199
|
currentTask: TASK
|
|
198
|
-
}
|
|
200
|
+
};
|
|
199
201
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
200
202
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
201
203
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
@@ -203,44 +205,47 @@ describe('components.FormRenderer.onTaskAction', function () {
|
|
|
203
205
|
expect(onPageChangeArgs[0].state).toEqual(CUSTOM_ARGS.currentTask);
|
|
204
206
|
});
|
|
205
207
|
});
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
describe("when currentTask has a state of ".concat(state), function () {
|
|
211
|
-
var TASK = {
|
|
208
|
+
const otherStates = Object.values(_models.TaskStates.TYPES).filter(t => t !== _models.TaskStates.TYPES.IN_PROGRESS && t !== _models.TaskStates.TYPES.COMPLETE);
|
|
209
|
+
otherStates.forEach(state => {
|
|
210
|
+
describe("when currentTask has a state of ".concat(state), () => {
|
|
211
|
+
const TASK = {
|
|
212
212
|
name: 'task1',
|
|
213
|
-
state
|
|
213
|
+
state,
|
|
214
214
|
pages: ['page1', 'page2', 'page3']
|
|
215
215
|
};
|
|
216
|
-
it('should handle the task having a specific first page defined',
|
|
217
|
-
|
|
218
|
-
|
|
216
|
+
it('should handle the task having a specific first page defined', () => {
|
|
217
|
+
const CUSTOM_ARGS = {
|
|
218
|
+
...ARGS,
|
|
219
|
+
currentTask: {
|
|
220
|
+
...TASK,
|
|
219
221
|
firstPage: 'page2'
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
+
}
|
|
223
|
+
};
|
|
222
224
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
223
225
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
224
226
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
225
227
|
expect(onPageChangeArgs[0].page).toEqual(CUSTOM_ARGS.currentTask.firstPage);
|
|
226
228
|
expect(onPageChangeArgs[0].state).toEqual(CUSTOM_ARGS.currentTask);
|
|
227
229
|
});
|
|
228
|
-
it('should handle the task having the first page defined as null',
|
|
229
|
-
|
|
230
|
-
|
|
230
|
+
it('should handle the task having the first page defined as null', () => {
|
|
231
|
+
const CUSTOM_ARGS = {
|
|
232
|
+
...ARGS,
|
|
233
|
+
currentTask: {
|
|
234
|
+
...TASK,
|
|
231
235
|
firstPage: null
|
|
232
|
-
}
|
|
233
|
-
}
|
|
236
|
+
}
|
|
237
|
+
};
|
|
234
238
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
235
239
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
236
240
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
237
241
|
expect(onPageChangeArgs[0].page).toEqual(CUSTOM_ARGS.currentTask.pages[0]);
|
|
238
242
|
expect(onPageChangeArgs[0].state).toEqual(CUSTOM_ARGS.currentTask);
|
|
239
243
|
});
|
|
240
|
-
it('should handle the task not having a specific first page defined',
|
|
241
|
-
|
|
244
|
+
it('should handle the task not having a specific first page defined', () => {
|
|
245
|
+
const CUSTOM_ARGS = {
|
|
246
|
+
...ARGS,
|
|
242
247
|
currentTask: TASK
|
|
243
|
-
}
|
|
248
|
+
};
|
|
244
249
|
_onTaskAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
|
|
245
250
|
genericChecks(CUSTOM_ARGS.currentTask);
|
|
246
251
|
expect(onPageChangeArgs.length).toEqual(1);
|
|
@@ -8,19 +8,18 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _models = require("../../models");
|
|
11
|
-
var _excluded = ["action", "onAction"]; // Global imports
|
|
12
|
-
// Local imports
|
|
13
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
onAction
|
|
21
|
-
attrs
|
|
22
|
-
|
|
23
|
-
|
|
12
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // Global imports
|
|
13
|
+
// Local imports
|
|
14
|
+
const DEFAULT_LABEL = exports.DEFAULT_LABEL = 'Continue';
|
|
15
|
+
const ActionButton = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
action: _action,
|
|
18
|
+
onAction,
|
|
19
|
+
...attrs
|
|
20
|
+
} = _ref;
|
|
21
|
+
const action = typeof _action === 'string' ? _models.PageAction.DEFAULTS[_action] : _action;
|
|
22
|
+
const actionLabel = _models.PageAction.DEFAULTS[_action.type];
|
|
24
23
|
if (!action) {
|
|
25
24
|
return null;
|
|
26
25
|
}
|
|
@@ -29,9 +28,7 @@ var ActionButton = function ActionButton(_ref) {
|
|
|
29
28
|
classModifiers: action.classModifiers,
|
|
30
29
|
start: action.start || false,
|
|
31
30
|
name: action.label,
|
|
32
|
-
onClick: action.disabled ?
|
|
33
|
-
return onAction(action);
|
|
34
|
-
}
|
|
31
|
+
onClick: action.disabled ? () => {} : () => onAction(action)
|
|
35
32
|
}), action.label || (actionLabel === null || actionLabel === void 0 ? void 0 : actionLabel.label) || DEFAULT_LABEL);
|
|
36
33
|
};
|
|
37
34
|
ActionButton.propTypes = {
|
|
@@ -1,94 +1,72 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
var _react = require("@testing-library/react");
|
|
5
4
|
var _react2 = _interopRequireDefault(require("react"));
|
|
6
5
|
var _models = require("../../models");
|
|
7
6
|
var _ActionButton = _interopRequireWildcard(require("./ActionButton"));
|
|
8
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function
|
|
9
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" !=
|
|
7
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
8
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } // Global imports
|
|
10
|
+
// Global imports
|
|
11
|
+
|
|
14
12
|
// Local imports
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
|
|
14
|
+
describe('components', () => {
|
|
15
|
+
describe('PageActions.ActionButton', () => {
|
|
16
|
+
const ON_ACTION_CALLS = [];
|
|
17
|
+
const ON_ACTION = action => {
|
|
19
18
|
ON_ACTION_CALLS.push(action);
|
|
20
19
|
};
|
|
21
|
-
beforeEach(
|
|
20
|
+
beforeEach(() => {
|
|
22
21
|
ON_ACTION_CALLS.length = 0;
|
|
23
22
|
});
|
|
24
|
-
it('should handle an unknown action identifier',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
case 0:
|
|
46
|
-
ACTION = _models.PageAction.TYPES.SUBMIT;
|
|
47
|
-
_render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_ActionButton.default, {
|
|
48
|
-
action: ACTION,
|
|
49
|
-
onAction: ON_ACTION
|
|
50
|
-
})), container = _render2.container;
|
|
51
|
-
button = container.childNodes[0];
|
|
52
|
-
expect(button.tagName).toEqual('BUTTON');
|
|
53
|
-
expect(button.textContent).toEqual(_ActionButton.DEFAULT_LABEL);
|
|
23
|
+
it('should handle an unknown action identifier', async () => {
|
|
24
|
+
const ACTION = 'unknown';
|
|
25
|
+
const {
|
|
26
|
+
container
|
|
27
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_ActionButton.default, {
|
|
28
|
+
action: ACTION,
|
|
29
|
+
onAction: ON_ACTION
|
|
30
|
+
}));
|
|
31
|
+
expect(container.childNodes.length).toEqual(0);
|
|
32
|
+
});
|
|
33
|
+
it('should appropriately display a submit action', async () => {
|
|
34
|
+
const ACTION = _models.PageAction.TYPES.SUBMIT;
|
|
35
|
+
const {
|
|
36
|
+
container
|
|
37
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_ActionButton.default, {
|
|
38
|
+
action: ACTION,
|
|
39
|
+
onAction: ON_ACTION
|
|
40
|
+
}));
|
|
41
|
+
const button = container.childNodes[0];
|
|
42
|
+
expect(button.tagName).toEqual('BUTTON');
|
|
43
|
+
expect(button.textContent).toEqual(_ActionButton.DEFAULT_LABEL);
|
|
54
44
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
_render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_ActionButton.default, {
|
|
76
|
-
action: ACTION,
|
|
77
|
-
onAction: ON_ACTION
|
|
78
|
-
})), container = _render3.container;
|
|
79
|
-
button = container.childNodes[0];
|
|
80
|
-
expect(button.tagName).toEqual('BUTTON');
|
|
81
|
-
expect(button.textContent).toEqual(ACTION.label);
|
|
45
|
+
// Click the button and make sure it fires the onAction handler.
|
|
46
|
+
_react.fireEvent.click(button, {});
|
|
47
|
+
expect(ON_ACTION_CALLS.length).toEqual(1);
|
|
48
|
+
expect(ON_ACTION_CALLS[0]).toEqual(_models.PageAction.DEFAULTS.submit);
|
|
49
|
+
});
|
|
50
|
+
it('should appropriately display a custom action', async () => {
|
|
51
|
+
const ACTION = {
|
|
52
|
+
type: 'navigate',
|
|
53
|
+
url: '/alpha',
|
|
54
|
+
label: 'Alpha'
|
|
55
|
+
};
|
|
56
|
+
const {
|
|
57
|
+
container
|
|
58
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_ActionButton.default, {
|
|
59
|
+
action: ACTION,
|
|
60
|
+
onAction: ON_ACTION
|
|
61
|
+
}));
|
|
62
|
+
const button = container.childNodes[0];
|
|
63
|
+
expect(button.tagName).toEqual('BUTTON');
|
|
64
|
+
expect(button.textContent).toEqual(ACTION.label);
|
|
82
65
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
case "end":
|
|
89
|
-
return _context3.stop();
|
|
90
|
-
}
|
|
91
|
-
}, _callee3);
|
|
92
|
-
})));
|
|
66
|
+
// Click the button and make sure it fires the onAction handler.
|
|
67
|
+
_react.fireEvent.click(button, {});
|
|
68
|
+
expect(ON_ACTION_CALLS.length).toEqual(1);
|
|
69
|
+
expect(ON_ACTION_CALLS[0]).toEqual(ACTION);
|
|
70
|
+
});
|
|
93
71
|
});
|
|
94
72
|
});
|
|
@@ -13,19 +13,19 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
13
13
|
|
|
14
14
|
// Local imports
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const PageActions = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
actions,
|
|
19
|
+
onAction
|
|
20
|
+
} = _ref;
|
|
19
21
|
if (!actions || actions.length === 0) {
|
|
20
22
|
return null;
|
|
21
23
|
}
|
|
22
|
-
return /*#__PURE__*/_react.default.createElement(_copReactComponents.ButtonGroup, null, actions.map(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
}));
|
|
24
|
+
return /*#__PURE__*/_react.default.createElement(_copReactComponents.ButtonGroup, null, actions.map((action, index) => /*#__PURE__*/_react.default.createElement(_ActionButton.default, {
|
|
25
|
+
key: index,
|
|
26
|
+
action: action,
|
|
27
|
+
onAction: onAction
|
|
28
|
+
})));
|
|
29
29
|
};
|
|
30
30
|
PageActions.propTypes = {
|
|
31
31
|
actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({}), _propTypes.default.string])).isRequired,
|