@ukhomeoffice/cop-react-form-renderer 5.89.0 → 5.90.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +15 -15
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +106 -142
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +563 -941
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +76 -66
- package/dist/components/CollectionPage/CollectionPage.test.js +318 -369
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +15 -15
- package/dist/components/CollectionSummary/BannerStrip.test.js +83 -79
- package/dist/components/CollectionSummary/CollectionSummary.js +109 -131
- package/dist/components/CollectionSummary/CollectionSummary.test.js +198 -180
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +47 -55
- package/dist/components/CollectionSummary/RenderListView.test.js +82 -81
- package/dist/components/CollectionSummary/SummaryCard.js +121 -157
- package/dist/components/CollectionSummary/SummaryCard.test.js +970 -1000
- package/dist/components/CollectionSummary/SummaryCardDetails.js +103 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +187 -195
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +64 -76
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +81 -117
- package/dist/components/FormComponent/Collection.scss +1 -1
- package/dist/components/FormComponent/Collection.test.js +910 -1082
- package/dist/components/FormComponent/Container.js +45 -38
- package/dist/components/FormComponent/Container.scss +15 -0
- package/dist/components/FormComponent/Container.test.js +379 -411
- package/dist/components/FormComponent/FormComponent.js +71 -74
- package/dist/components/FormComponent/FormComponent.test.js +354 -415
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
- package/dist/components/FormComponent/helpers/index.js +5 -5
- package/dist/components/FormComponent/index.js +1 -1
- package/dist/components/FormPage/FormPage.js +71 -87
- package/dist/components/FormPage/FormPage.test.js +133 -170
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +153 -198
- package/dist/components/FormRenderer/FormRenderer.test.js +731 -1116
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
- package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
- package/dist/components/FormRenderer/handlers/index.js +2 -2
- package/dist/components/FormRenderer/handlers/navigate.js +4 -4
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +27 -30
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -7
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +18 -32
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +8 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +12 -13
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +65 -64
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +61 -54
- package/dist/components/FormRenderer/onCYAAction.test.js +165 -153
- package/dist/components/FormRenderer/onPageAction.js +45 -41
- package/dist/components/FormRenderer/onPageAction.test.js +225 -210
- package/dist/components/FormRenderer/onTaskAction.js +11 -15
- package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
- package/dist/components/PageActions/ActionButton.js +13 -16
- package/dist/components/PageActions/ActionButton.test.js +57 -79
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +87 -116
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +13 -21
- package/dist/components/SummaryList/GroupAction.test.js +41 -37
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +41 -37
- package/dist/components/SummaryList/SummaryList.js +23 -28
- package/dist/components/SummaryList/SummaryList.test.js +179 -206
- package/dist/components/SummaryList/SummaryListHeadingRow.js +8 -6
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +8 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +7 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +4 -6
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +4 -6
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +1 -1
- package/dist/components/TaskList/Task.js +20 -30
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +53 -84
- package/dist/components/TaskList/TaskList.test.js +150 -150
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +56 -49
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +58 -81
- package/dist/context/HooksContext/HooksContext.test.js +27 -36
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +44 -95
- package/dist/context/ValidationContext/ValidationContext.test.js +58 -70
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +15 -41
- package/dist/hooks/useGetRequest.js +62 -98
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +28 -41
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +14 -15
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +10 -10
- package/dist/setupTests.js +31 -32
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +17 -27
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +34 -36
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +20 -34
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +43 -45
- package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -25
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +39 -45
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +100 -105
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +218 -182
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +26 -21
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +15 -21
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +13 -13
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +14 -19
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +6 -6
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -3
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +21 -22
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +15 -24
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +52 -43
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +3 -3
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -12
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -13
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +25 -26
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -32
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +18 -22
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +37 -42
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -22
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +13 -19
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +26 -26
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +19 -20
- package/dist/utils/Component/applyToComponentTree.test.js +28 -33
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -7
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +90 -97
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +50 -63
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +30 -40
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +22 -27
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +12 -11
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +34 -41
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +23 -32
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
- package/dist/utils/Component/getDefaultValue.js +7 -9
- package/dist/utils/Component/getDefaultValue.test.js +13 -13
- package/dist/utils/Component/getDefaultValueFromConfig.js +24 -24
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
- package/dist/utils/Component/index.js +2 -2
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -4
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +29 -31
- package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
- package/dist/utils/Component/showComponent.js +3 -4
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +4 -4
- package/dist/utils/Condition/index.js +2 -2
- package/dist/utils/Condition/meetsAllConditions.js +9 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
- package/dist/utils/Condition/meetsCondition.js +20 -31
- package/dist/utils/Condition/meetsCondition.test.js +403 -403
- package/dist/utils/Condition/meetsOneCondition.js +6 -6
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +14 -19
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +4 -6
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +16 -22
- package/dist/utils/Container/setupNesting.test.js +28 -31
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +40 -50
- package/dist/utils/Data/applyFormula.test.js +26 -26
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +20 -29
- package/dist/utils/Data/getAutocompleteSource.test.js +81 -87
- package/dist/utils/Data/getDataPath.js +20 -30
- package/dist/utils/Data/getDataPath.test.js +20 -20
- package/dist/utils/Data/getOptions.js +27 -34
- package/dist/utils/Data/getOptions.test.js +28 -28
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +9 -16
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +11 -15
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +14 -22
- package/dist/utils/Data/setupFormData.test.js +52 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +21 -28
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
- package/dist/utils/FormPage/applyConditionalProperties.js +6 -10
- package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +35 -35
- package/dist/utils/FormPage/getFormPage.js +16 -17
- package/dist/utils/FormPage/getFormPage.test.js +49 -48
- package/dist/utils/FormPage/getFormPages.js +8 -13
- package/dist/utils/FormPage/getFormPages.test.js +22 -25
- package/dist/utils/FormPage/getPageActions.js +10 -17
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -5
- package/dist/utils/FormPage/showFormPage.js +4 -8
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +3 -3
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +78 -80
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -7
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +29 -32
- package/dist/utils/Hub/index.js +2 -2
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -4
- package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +15 -17
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +4 -4
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +3 -3
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +8 -8
- package/dist/utils/Operate/getFirstOf.test.js +33 -33
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +12 -12
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +11 -11
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +6 -6
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +9 -9
- package/dist/utils/Operate/runPageOperations.test.js +36 -37
- package/dist/utils/Operate/setValueInFormData.js +5 -5
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +8 -8
- package/dist/utils/Operate/shouldRun.test.js +22 -28
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +25 -0
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +33 -0
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -5
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +10 -8
- package/dist/utils/Validate/additional/index.test.js +22 -22
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +9 -14
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +38 -42
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +4 -4
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +36 -40
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +3 -5
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +3 -5
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +11 -24
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +21 -27
- package/dist/utils/Validate/validateCollection.test.js +85 -77
- package/dist/utils/Validate/validateComponent.js +22 -23
- package/dist/utils/Validate/validateComponent.test.js +188 -165
- package/dist/utils/Validate/validateContainer.js +16 -21
- package/dist/utils/Validate/validateContainer.test.js +62 -56
- package/dist/utils/Validate/validateDate.js +17 -23
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +26 -26
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +20 -24
- package/dist/utils/Validate/validatePage.test.js +227 -215
- package/dist/utils/Validate/validateRegex.js +5 -8
- package/dist/utils/Validate/validateRegex.test.js +17 -17
- package/dist/utils/Validate/validateRequired.js +5 -7
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +5 -7
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +12 -19
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +8 -10
- package/package.json +3 -2
|
@@ -7,23 +7,16 @@ var _setupTests = require("../../setupTests");
|
|
|
7
7
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
8
8
|
var _ActionButton = require("../PageActions/ActionButton");
|
|
9
9
|
var _CollectionPage = _interopRequireWildcard(require("./CollectionPage"));
|
|
10
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function
|
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" !=
|
|
12
|
-
function _interopRequireDefault(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
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; }
|
|
16
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
17
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
18
|
-
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); }); }; }
|
|
19
|
-
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; }
|
|
20
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
21
|
-
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); } // Global imports
|
|
10
|
+
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); }
|
|
11
|
+
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; }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
// Global imports
|
|
14
|
+
|
|
22
15
|
// Local imports
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
|
|
17
|
+
describe('components.CollectionPage', () => {
|
|
18
|
+
describe('CollectionPage', () => {
|
|
19
|
+
const TEXT = {
|
|
27
20
|
id: 'text',
|
|
28
21
|
fieldId: 'text',
|
|
29
22
|
type: 'text',
|
|
@@ -31,7 +24,7 @@ describe('components.CollectionPage', function () {
|
|
|
31
24
|
hint: 'Text hint'
|
|
32
25
|
};
|
|
33
26
|
// eslint-disable-next-line no-template-curly-in-string
|
|
34
|
-
|
|
27
|
+
const TEXT_WITH_EXPRESSION = {
|
|
35
28
|
id: 'text1',
|
|
36
29
|
fieldId: 'text1',
|
|
37
30
|
type: 'text',
|
|
@@ -39,7 +32,7 @@ describe('components.CollectionPage', function () {
|
|
|
39
32
|
hint: 'Text hint ${currentUser.givenName}'
|
|
40
33
|
};
|
|
41
34
|
// eslint-disable-next-line no-template-curly-in-string
|
|
42
|
-
|
|
35
|
+
const AUTO_WITH_EXPRESSION = {
|
|
43
36
|
id: 'text2',
|
|
44
37
|
fieldId: 'text2',
|
|
45
38
|
label: '${text2} ${currentUser.givenName}',
|
|
@@ -49,10 +42,10 @@ describe('components.CollectionPage', function () {
|
|
|
49
42
|
source: [],
|
|
50
43
|
disabled: false
|
|
51
44
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
const VALUE = 'Text value';
|
|
46
|
+
const COLLECTION_NAME = 'testCollection';
|
|
47
|
+
const ACTIVE_ID = '01';
|
|
48
|
+
const PAGE = {
|
|
56
49
|
id: 'pageId',
|
|
57
50
|
title: 'Page 1',
|
|
58
51
|
collection: {
|
|
@@ -60,12 +53,15 @@ describe('components.CollectionPage', function () {
|
|
|
60
53
|
},
|
|
61
54
|
components: [TEXT],
|
|
62
55
|
actions: [_models.PageAction.TYPES.SUBMIT],
|
|
63
|
-
formData:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
56
|
+
formData: {
|
|
57
|
+
[`${COLLECTION_NAME}ActiveId`]: ACTIVE_ID,
|
|
58
|
+
[COLLECTION_NAME]: [{
|
|
59
|
+
id: ACTIVE_ID,
|
|
60
|
+
text: VALUE
|
|
61
|
+
}]
|
|
62
|
+
}
|
|
67
63
|
};
|
|
68
|
-
|
|
64
|
+
const PAGE_WITH_BUTTON_ACTIONS = {
|
|
69
65
|
id: 'pageId',
|
|
70
66
|
// eslint-disable-next-line no-template-curly-in-string
|
|
71
67
|
title: '${title}',
|
|
@@ -86,19 +82,25 @@ describe('components.CollectionPage', function () {
|
|
|
86
82
|
page: '1',
|
|
87
83
|
label: 'Go back ${wrapper.prevAction}'
|
|
88
84
|
}],
|
|
89
|
-
formData:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
85
|
+
formData: {
|
|
86
|
+
[`${COLLECTION_NAME}ActiveId`]: ACTIVE_ID,
|
|
87
|
+
[COLLECTION_NAME]: [{
|
|
88
|
+
id: ACTIVE_ID,
|
|
89
|
+
text1: `Text1 ${VALUE}`,
|
|
90
|
+
text2: `Text2 ${VALUE}`
|
|
91
|
+
}],
|
|
92
|
+
title: 'Order Form',
|
|
93
|
+
wrapper: {
|
|
94
|
+
email: 'test@example.email',
|
|
95
|
+
nextAction: 'Payment',
|
|
96
|
+
prevAction: 'User Details'
|
|
97
|
+
},
|
|
98
|
+
currentUser: {
|
|
99
|
+
givenName: 'Doe'
|
|
100
|
+
}
|
|
101
|
+
}
|
|
100
102
|
};
|
|
101
|
-
|
|
103
|
+
const PAGE_WITH_CONDITIONAL_BUTTONS = {
|
|
102
104
|
id: 'pageId',
|
|
103
105
|
// eslint-disable-next-line no-template-curly-in-string
|
|
104
106
|
title: '${title}',
|
|
@@ -125,70 +127,73 @@ describe('components.CollectionPage', function () {
|
|
|
125
127
|
value: 'Doe'
|
|
126
128
|
}]
|
|
127
129
|
}],
|
|
128
|
-
formData:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
130
|
+
formData: {
|
|
131
|
+
[`${COLLECTION_NAME}ActiveId`]: ACTIVE_ID,
|
|
132
|
+
[COLLECTION_NAME]: [{
|
|
133
|
+
id: ACTIVE_ID,
|
|
134
|
+
text1: `Text1 ${VALUE}`,
|
|
135
|
+
text2: `Text2 ${VALUE}`
|
|
136
|
+
}],
|
|
137
|
+
title: 'Order Form',
|
|
138
|
+
wrapper: {
|
|
139
|
+
email: 'test@example.email',
|
|
140
|
+
nextAction: 'Payment',
|
|
141
|
+
prevAction: 'User Details'
|
|
142
|
+
},
|
|
143
|
+
currentUser: {
|
|
144
|
+
givenName: 'Doe'
|
|
145
|
+
}
|
|
146
|
+
}
|
|
139
147
|
};
|
|
140
|
-
|
|
141
|
-
|
|
148
|
+
const ON_ACTION_CALLS = [];
|
|
149
|
+
const checkInputField = (formGroup, fieldId, lbl, hnt, val) => {
|
|
142
150
|
expect(formGroup.tagName).toEqual('DIV');
|
|
143
151
|
expect(formGroup.classList).toContain('govuk-form-group');
|
|
144
|
-
|
|
152
|
+
const label = formGroup.childNodes[0];
|
|
145
153
|
expect(label.tagName).toEqual('LABEL');
|
|
146
154
|
expect(label.classList).toContain('govuk-label');
|
|
147
155
|
expect(label.textContent).toEqual(lbl);
|
|
148
156
|
expect(label.getAttribute('for')).toEqual(fieldId);
|
|
149
|
-
|
|
157
|
+
const hint = formGroup.childNodes[1];
|
|
150
158
|
expect(hint.tagName).toEqual('DIV');
|
|
151
159
|
expect(hint.classList).toContain('govuk-hint');
|
|
152
160
|
expect(hint.textContent).toEqual(hnt);
|
|
153
|
-
|
|
161
|
+
const input = formGroup.childNodes[2];
|
|
154
162
|
expect(input.tagName).toEqual('INPUT');
|
|
155
163
|
expect(input.classList).toContain('govuk-input');
|
|
156
164
|
expect(input.id).toEqual(fieldId);
|
|
157
165
|
expect(input.value).toEqual(val);
|
|
158
166
|
return input;
|
|
159
167
|
};
|
|
160
|
-
|
|
168
|
+
const checkAutoCompleteField = (formGroup, fieldId, lbl, hnt, val) => {
|
|
161
169
|
expect(formGroup.tagName).toEqual('DIV');
|
|
162
170
|
expect(formGroup.classList).toContain('govuk-form-group');
|
|
163
|
-
|
|
171
|
+
const label = formGroup.childNodes[0];
|
|
164
172
|
expect(label.tagName).toEqual('LABEL');
|
|
165
173
|
expect(label.classList).toContain('govuk-label');
|
|
166
174
|
expect(label.textContent).toEqual(lbl);
|
|
167
175
|
expect(label.getAttribute('for')).toEqual(fieldId);
|
|
168
|
-
|
|
176
|
+
const hint = formGroup.childNodes[1];
|
|
169
177
|
expect(hint.tagName).toEqual('DIV');
|
|
170
178
|
expect(hint.classList).toContain('govuk-hint');
|
|
171
179
|
expect(hint.textContent).toEqual(hnt);
|
|
172
|
-
|
|
180
|
+
const outerWrapper = formGroup.childNodes[2];
|
|
173
181
|
expect(outerWrapper.classList).toContain('hods-autocomplete__outer-wrapper');
|
|
174
|
-
|
|
182
|
+
const autocomplete = outerWrapper.childNodes[0];
|
|
175
183
|
expect(autocomplete.classList).toContain('hods-autocomplete__wrapper');
|
|
176
|
-
|
|
177
|
-
return e.tagName === 'INPUT';
|
|
178
|
-
})[0];
|
|
184
|
+
const input = [].concat(autocomplete.childNodes).filter(e => e.tagName === 'INPUT')[0];
|
|
179
185
|
expect(input.classList).toContain('hods-autocomplete__input');
|
|
180
186
|
expect(input.tagName).toEqual('INPUT');
|
|
181
187
|
expect(input.id).toEqual(fieldId);
|
|
182
188
|
expect(input.value).toEqual(val);
|
|
183
189
|
return input;
|
|
184
190
|
};
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
var buttons = [];
|
|
191
|
+
const checkFormButtonGroup = (buttonGroup, labels) => {
|
|
192
|
+
const buttons = [];
|
|
188
193
|
expect(buttonGroup.tagName).toEqual('DIV');
|
|
189
194
|
expect(buttonGroup.classList).toContain('hods-button-group');
|
|
190
|
-
expect(
|
|
191
|
-
buttonGroup.childNodes.forEach(
|
|
195
|
+
expect(buttonGroup.childNodes?.length).toEqual(labels.length);
|
|
196
|
+
buttonGroup.childNodes.forEach((button, i) => {
|
|
192
197
|
expect(button.tagName).toEqual('BUTTON');
|
|
193
198
|
expect(button.classList).toContain('hods-button');
|
|
194
199
|
expect(button.textContent).toEqual(labels[i]);
|
|
@@ -196,217 +201,178 @@ describe('components.CollectionPage', function () {
|
|
|
196
201
|
});
|
|
197
202
|
return buttons;
|
|
198
203
|
};
|
|
199
|
-
|
|
204
|
+
const ON_ACTION = (action, patch, onError) => {
|
|
200
205
|
ON_ACTION_CALLS.push({
|
|
201
|
-
action
|
|
202
|
-
patch
|
|
203
|
-
onError
|
|
206
|
+
action,
|
|
207
|
+
patch,
|
|
208
|
+
onError
|
|
204
209
|
});
|
|
205
210
|
};
|
|
206
|
-
beforeEach(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
211
|
+
beforeEach(() => {
|
|
212
|
+
PAGE.formData = {
|
|
213
|
+
[`${COLLECTION_NAME}ActiveId`]: ACTIVE_ID,
|
|
214
|
+
[COLLECTION_NAME]: [{
|
|
215
|
+
id: ACTIVE_ID,
|
|
216
|
+
text: VALUE
|
|
217
|
+
}]
|
|
218
|
+
};
|
|
212
219
|
ON_ACTION_CALLS.length = 0;
|
|
213
220
|
});
|
|
214
|
-
it('should render a submit page correctly',
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
var _renderWithValidation4, container, page;
|
|
285
|
-
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
286
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
287
|
-
case 0:
|
|
288
|
-
_renderWithValidation4 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
289
|
-
page: PAGE_WITH_CONDITIONAL_BUTTONS,
|
|
290
|
-
onAction: ON_ACTION
|
|
291
|
-
})), container = _renderWithValidation4.container;
|
|
292
|
-
page = container.childNodes[0];
|
|
293
|
-
checkFormButtonGroup(page.childNodes[3], ['Button 2']); // Just the second button shown
|
|
294
|
-
case 3:
|
|
295
|
-
case "end":
|
|
296
|
-
return _context4.stop();
|
|
297
|
-
}
|
|
298
|
-
}, _callee4);
|
|
299
|
-
})));
|
|
300
|
-
describe('with a top-level Collection Page', function () {
|
|
301
|
-
it('should handle a page change appropriately', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
302
|
-
var _renderWithValidation5, container, page, input, NEW_VALUE, EVENT;
|
|
303
|
-
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
304
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
305
|
-
case 0:
|
|
306
|
-
_renderWithValidation5 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
307
|
-
page: PAGE,
|
|
308
|
-
onAction: ON_ACTION
|
|
309
|
-
})), container = _renderWithValidation5.container;
|
|
310
|
-
page = container.childNodes[0];
|
|
311
|
-
expect(page.tagName).toEqual('DIV');
|
|
312
|
-
|
|
313
|
-
// Change the input.
|
|
314
|
-
input = page.childNodes[1].childNodes[2];
|
|
315
|
-
NEW_VALUE = "".concat(VALUE, ".");
|
|
316
|
-
EVENT = {
|
|
317
|
-
target: {
|
|
318
|
-
name: TEXT.fieldId,
|
|
319
|
-
value: NEW_VALUE
|
|
320
|
-
}
|
|
321
|
-
};
|
|
322
|
-
_react.fireEvent.change(input, EVENT);
|
|
221
|
+
it('should render a submit page correctly', async () => {
|
|
222
|
+
const {
|
|
223
|
+
container
|
|
224
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
225
|
+
page: PAGE,
|
|
226
|
+
onAction: ON_ACTION
|
|
227
|
+
}));
|
|
228
|
+
const page = container.childNodes[0];
|
|
229
|
+
expect(page.tagName).toEqual('DIV');
|
|
230
|
+
expect(page.classList).toContain(_CollectionPage.DEFAULT_CLASS);
|
|
231
|
+
const heading = page.childNodes[0];
|
|
232
|
+
expect(heading.classList).toContain('govuk-heading-l');
|
|
233
|
+
expect(heading.textContent).toEqual(_utils.default.FormPage.getTitle(PAGE.title, PAGE.formData));
|
|
234
|
+
checkInputField(page.childNodes[1], TEXT.fieldId, `${TEXT.label} (optional)`, TEXT.hint, VALUE);
|
|
235
|
+
checkFormButtonGroup(page.childNodes[2], [_ActionButton.DEFAULT_LABEL]);
|
|
236
|
+
});
|
|
237
|
+
it('should render nothing when there is no formData and page.collection.waitForFormData is true', async () => {
|
|
238
|
+
const {
|
|
239
|
+
container
|
|
240
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
241
|
+
page: {
|
|
242
|
+
...PAGE,
|
|
243
|
+
collection: {
|
|
244
|
+
...PAGE.collection,
|
|
245
|
+
waitForFormData: true
|
|
246
|
+
},
|
|
247
|
+
formData: {}
|
|
248
|
+
},
|
|
249
|
+
onAction: ON_ACTION
|
|
250
|
+
}));
|
|
251
|
+
expect(container.childNodes.length).toEqual(0);
|
|
252
|
+
});
|
|
253
|
+
it('should render a submit page correctly and submit action button has interpolated label', async () => {
|
|
254
|
+
const {
|
|
255
|
+
container
|
|
256
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
257
|
+
page: PAGE_WITH_BUTTON_ACTIONS,
|
|
258
|
+
onAction: ON_ACTION
|
|
259
|
+
}));
|
|
260
|
+
const page = container.childNodes[0];
|
|
261
|
+
const FORM_DATA = PAGE_WITH_BUTTON_ACTIONS.formData;
|
|
262
|
+
expect(page.tagName).toEqual('DIV');
|
|
263
|
+
expect(page.classList).toContain(_CollectionPage.DEFAULT_CLASS);
|
|
264
|
+
const heading = page.childNodes[0];
|
|
265
|
+
expect(heading.classList).toContain('govuk-heading-l');
|
|
266
|
+
expect(heading.textContent).toEqual(FORM_DATA.title);
|
|
267
|
+
checkInputField(page.childNodes[1], TEXT_WITH_EXPRESSION.fieldId, 'Email to test@example.email (optional)', 'Text hint Doe', 'Text1 Text value');
|
|
268
|
+
checkAutoCompleteField(page.childNodes[2], AUTO_WITH_EXPRESSION.fieldId, `${FORM_DATA[COLLECTION_NAME][0].text2} ${FORM_DATA.currentUser.givenName}`, FORM_DATA.wrapper.email, `Text2 ${VALUE}`);
|
|
269
|
+
checkFormButtonGroup(page.childNodes[3], ['Next Payment', 'Go back User Details']);
|
|
270
|
+
});
|
|
271
|
+
it('should render only the conditionally shown button', async () => {
|
|
272
|
+
const {
|
|
273
|
+
container
|
|
274
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
275
|
+
page: PAGE_WITH_CONDITIONAL_BUTTONS,
|
|
276
|
+
onAction: ON_ACTION
|
|
277
|
+
}));
|
|
278
|
+
const page = container.childNodes[0];
|
|
279
|
+
checkFormButtonGroup(page.childNodes[3], ['Button 2']); // Just the second button shown
|
|
280
|
+
});
|
|
281
|
+
describe('with a top-level Collection Page', () => {
|
|
282
|
+
it('should handle a page change appropriately', async () => {
|
|
283
|
+
const {
|
|
284
|
+
container
|
|
285
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
286
|
+
page: PAGE,
|
|
287
|
+
onAction: ON_ACTION
|
|
288
|
+
}));
|
|
289
|
+
const page = container.childNodes[0];
|
|
290
|
+
expect(page.tagName).toEqual('DIV');
|
|
323
291
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
292
|
+
// Change the input.
|
|
293
|
+
const input = page.childNodes[1].childNodes[2];
|
|
294
|
+
const NEW_VALUE = `${VALUE}.`;
|
|
295
|
+
const EVENT = {
|
|
296
|
+
target: {
|
|
297
|
+
name: TEXT.fieldId,
|
|
298
|
+
value: NEW_VALUE
|
|
329
299
|
}
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
it('should handle a page action appropriately, updating the active entry if there is one', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
|
|
333
|
-
var _renderWithValidation6, container, page, input, NEW_VALUE, CHANGE_EVENT, button;
|
|
334
|
-
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
335
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
336
|
-
case 0:
|
|
337
|
-
_renderWithValidation6 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
338
|
-
page: PAGE,
|
|
339
|
-
onAction: ON_ACTION
|
|
340
|
-
})), container = _renderWithValidation6.container;
|
|
341
|
-
page = container.childNodes[0]; // Change the input.
|
|
342
|
-
input = page.childNodes[1].childNodes[2];
|
|
343
|
-
NEW_VALUE = "".concat(VALUE, ".");
|
|
344
|
-
CHANGE_EVENT = {
|
|
345
|
-
target: {
|
|
346
|
-
name: TEXT.fieldId,
|
|
347
|
-
value: NEW_VALUE
|
|
348
|
-
}
|
|
349
|
-
};
|
|
350
|
-
_react.fireEvent.change(input, CHANGE_EVENT);
|
|
300
|
+
};
|
|
301
|
+
_react.fireEvent.change(input, EVENT);
|
|
351
302
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
303
|
+
// And confirm the formData has been changed.
|
|
304
|
+
expect(PAGE.formData[COLLECTION_NAME][0].text).toEqual(NEW_VALUE);
|
|
305
|
+
});
|
|
306
|
+
it('should handle a page action appropriately, updating the active entry if there is one', async () => {
|
|
307
|
+
const {
|
|
308
|
+
container
|
|
309
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
310
|
+
page: PAGE,
|
|
311
|
+
onAction: ON_ACTION
|
|
312
|
+
}));
|
|
313
|
+
const page = container.childNodes[0];
|
|
355
314
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
}]));
|
|
364
|
-
case 12:
|
|
365
|
-
case "end":
|
|
366
|
-
return _context6.stop();
|
|
315
|
+
// Change the input.
|
|
316
|
+
const input = page.childNodes[1].childNodes[2];
|
|
317
|
+
const NEW_VALUE = `${VALUE}.`;
|
|
318
|
+
const CHANGE_EVENT = {
|
|
319
|
+
target: {
|
|
320
|
+
name: TEXT.fieldId,
|
|
321
|
+
value: NEW_VALUE
|
|
367
322
|
}
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
it('should handle a page action appropriately, creating a new active entry if there isn\'t one', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
371
|
-
var _renderWithValidation7, container, page, input, NEW_VALUE, CHANGE_EVENT, button;
|
|
372
|
-
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
373
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
374
|
-
case 0:
|
|
375
|
-
// Make sure there is no active entry.
|
|
376
|
-
PAGE.formData["".concat(COLLECTION_NAME, "ActiveId")] = 'newId';
|
|
377
|
-
_renderWithValidation7 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
378
|
-
page: PAGE,
|
|
379
|
-
onAction: ON_ACTION
|
|
380
|
-
})), container = _renderWithValidation7.container;
|
|
381
|
-
page = container.childNodes[0]; // Change the input.
|
|
382
|
-
input = page.childNodes[1].childNodes[2];
|
|
383
|
-
NEW_VALUE = "".concat(VALUE, ".");
|
|
384
|
-
CHANGE_EVENT = {
|
|
385
|
-
target: {
|
|
386
|
-
name: TEXT.fieldId,
|
|
387
|
-
value: NEW_VALUE
|
|
388
|
-
}
|
|
389
|
-
};
|
|
390
|
-
_react.fireEvent.change(input, CHANGE_EVENT);
|
|
323
|
+
};
|
|
324
|
+
_react.fireEvent.change(input, CHANGE_EVENT);
|
|
391
325
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
326
|
+
// Then click the action button.
|
|
327
|
+
const button = page.childNodes[2].childNodes[0];
|
|
328
|
+
_react.fireEvent.click(button, {});
|
|
395
329
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
330
|
+
// And confirm an appropriate action was received.
|
|
331
|
+
expect(ON_ACTION_CALLS.length).toEqual(1);
|
|
332
|
+
expect(PAGE.formData[COLLECTION_NAME][0].text).toEqual(NEW_VALUE);
|
|
333
|
+
expect(ON_ACTION_CALLS[0].action).toEqual(_models.PageAction.DEFAULTS.submit);
|
|
334
|
+
expect(ON_ACTION_CALLS[0].patch).toEqual({
|
|
335
|
+
[COLLECTION_NAME]: [{
|
|
336
|
+
id: ACTIVE_ID,
|
|
337
|
+
text: NEW_VALUE
|
|
338
|
+
}]
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
it('should handle a page action appropriately, creating a new active entry if there isn\'t one', async () => {
|
|
342
|
+
// Make sure there is no active entry.
|
|
343
|
+
PAGE.formData[`${COLLECTION_NAME}ActiveId`] = 'newId';
|
|
344
|
+
const {
|
|
345
|
+
container
|
|
346
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
347
|
+
page: PAGE,
|
|
348
|
+
onAction: ON_ACTION
|
|
349
|
+
}));
|
|
350
|
+
const page = container.childNodes[0];
|
|
351
|
+
|
|
352
|
+
// Change the input.
|
|
353
|
+
const input = page.childNodes[1].childNodes[2];
|
|
354
|
+
const NEW_VALUE = `${VALUE}.`;
|
|
355
|
+
const CHANGE_EVENT = {
|
|
356
|
+
target: {
|
|
357
|
+
name: TEXT.fieldId,
|
|
358
|
+
value: NEW_VALUE
|
|
404
359
|
}
|
|
405
|
-
}
|
|
406
|
-
|
|
360
|
+
};
|
|
361
|
+
_react.fireEvent.change(input, CHANGE_EVENT);
|
|
362
|
+
|
|
363
|
+
// Then click the action button.
|
|
364
|
+
const button = page.childNodes[2].childNodes[0];
|
|
365
|
+
_react.fireEvent.click(button, {});
|
|
366
|
+
|
|
367
|
+
// And confirm an appropriate action was received.
|
|
368
|
+
expect(ON_ACTION_CALLS.length).toEqual(1);
|
|
369
|
+
expect(PAGE.formData[COLLECTION_NAME][1].text).toEqual(NEW_VALUE);
|
|
370
|
+
expect(PAGE.formData[COLLECTION_NAME][1].id).toBeTruthy();
|
|
371
|
+
expect(ON_ACTION_CALLS[0].action).toEqual(_models.PageAction.DEFAULTS.submit);
|
|
372
|
+
});
|
|
407
373
|
});
|
|
408
|
-
describe('with a nested Collection Page',
|
|
409
|
-
|
|
374
|
+
describe('with a nested Collection Page', () => {
|
|
375
|
+
const NESTED_PAGE = {
|
|
410
376
|
id: 'pageId',
|
|
411
377
|
title: 'Page 1',
|
|
412
378
|
collection: {
|
|
@@ -426,7 +392,7 @@ describe('components.CollectionPage', function () {
|
|
|
426
392
|
}]
|
|
427
393
|
}
|
|
428
394
|
};
|
|
429
|
-
beforeEach(
|
|
395
|
+
beforeEach(() => {
|
|
430
396
|
NESTED_PAGE.formData = {
|
|
431
397
|
parentActiveId: '001',
|
|
432
398
|
childActiveId: '001',
|
|
@@ -440,117 +406,100 @@ describe('components.CollectionPage', function () {
|
|
|
440
406
|
};
|
|
441
407
|
ON_ACTION_CALLS.length = 0;
|
|
442
408
|
});
|
|
443
|
-
it('should handle a page change appropriately',
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
page = container.childNodes[0];
|
|
453
|
-
expect(page.tagName).toEqual('DIV');
|
|
409
|
+
it('should handle a page change appropriately', async () => {
|
|
410
|
+
const {
|
|
411
|
+
container
|
|
412
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
413
|
+
page: NESTED_PAGE,
|
|
414
|
+
onAction: ON_ACTION
|
|
415
|
+
}));
|
|
416
|
+
const page = container.childNodes[0];
|
|
417
|
+
expect(page.tagName).toEqual('DIV');
|
|
454
418
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
}
|
|
463
|
-
};
|
|
464
|
-
_react.fireEvent.change(input, EVENT);
|
|
465
|
-
|
|
466
|
-
// And confirm the formData has been changed.
|
|
467
|
-
expect(NESTED_PAGE.formData.parent[0].child[0].text).toEqual(NEW_VALUE);
|
|
468
|
-
case 8:
|
|
469
|
-
case "end":
|
|
470
|
-
return _context8.stop();
|
|
419
|
+
// Change the input.
|
|
420
|
+
const input = page.childNodes[1].childNodes[2];
|
|
421
|
+
const NEW_VALUE = `${VALUE}.`;
|
|
422
|
+
const EVENT = {
|
|
423
|
+
target: {
|
|
424
|
+
name: TEXT.fieldId,
|
|
425
|
+
value: NEW_VALUE
|
|
471
426
|
}
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
it('should handle a page action appropriately, updating the active entry if there is one', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
|
|
475
|
-
var _renderWithValidation9, container, page, input, NEW_VALUE, CHANGE_EVENT, button;
|
|
476
|
-
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
477
|
-
while (1) switch (_context9.prev = _context9.next) {
|
|
478
|
-
case 0:
|
|
479
|
-
_renderWithValidation9 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
480
|
-
page: NESTED_PAGE,
|
|
481
|
-
onAction: ON_ACTION
|
|
482
|
-
})), container = _renderWithValidation9.container;
|
|
483
|
-
page = container.childNodes[0]; // Change the input.
|
|
484
|
-
input = page.childNodes[1].childNodes[2];
|
|
485
|
-
NEW_VALUE = "".concat(VALUE, ".");
|
|
486
|
-
CHANGE_EVENT = {
|
|
487
|
-
target: {
|
|
488
|
-
name: TEXT.fieldId,
|
|
489
|
-
value: NEW_VALUE
|
|
490
|
-
}
|
|
491
|
-
};
|
|
492
|
-
_react.fireEvent.change(input, CHANGE_EVENT);
|
|
427
|
+
};
|
|
428
|
+
_react.fireEvent.change(input, EVENT);
|
|
493
429
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
430
|
+
// And confirm the formData has been changed.
|
|
431
|
+
expect(NESTED_PAGE.formData.parent[0].child[0].text).toEqual(NEW_VALUE);
|
|
432
|
+
});
|
|
433
|
+
it('should handle a page action appropriately, updating the active entry if there is one', async () => {
|
|
434
|
+
const {
|
|
435
|
+
container
|
|
436
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
437
|
+
page: NESTED_PAGE,
|
|
438
|
+
onAction: ON_ACTION
|
|
439
|
+
}));
|
|
440
|
+
const page = container.childNodes[0];
|
|
497
441
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
child: [{
|
|
506
|
-
id: '001',
|
|
507
|
-
text: NEW_VALUE
|
|
508
|
-
}]
|
|
509
|
-
}]
|
|
510
|
-
});
|
|
511
|
-
case 12:
|
|
512
|
-
case "end":
|
|
513
|
-
return _context9.stop();
|
|
442
|
+
// Change the input.
|
|
443
|
+
const input = page.childNodes[1].childNodes[2];
|
|
444
|
+
const NEW_VALUE = `${VALUE}.`;
|
|
445
|
+
const CHANGE_EVENT = {
|
|
446
|
+
target: {
|
|
447
|
+
name: TEXT.fieldId,
|
|
448
|
+
value: NEW_VALUE
|
|
514
449
|
}
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
case 0:
|
|
522
|
-
// Make sure there is no active entry.
|
|
523
|
-
NESTED_PAGE.formData.childActiveId = 'newId';
|
|
524
|
-
_renderWithValidation10 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
525
|
-
page: NESTED_PAGE,
|
|
526
|
-
onAction: ON_ACTION
|
|
527
|
-
})), container = _renderWithValidation10.container;
|
|
528
|
-
page = container.childNodes[0]; // Change the input.
|
|
529
|
-
input = page.childNodes[1].childNodes[2];
|
|
530
|
-
NEW_VALUE = "".concat(VALUE, ".");
|
|
531
|
-
CHANGE_EVENT = {
|
|
532
|
-
target: {
|
|
533
|
-
name: TEXT.fieldId,
|
|
534
|
-
value: NEW_VALUE
|
|
535
|
-
}
|
|
536
|
-
};
|
|
537
|
-
_react.fireEvent.change(input, CHANGE_EVENT);
|
|
450
|
+
};
|
|
451
|
+
_react.fireEvent.change(input, CHANGE_EVENT);
|
|
452
|
+
|
|
453
|
+
// Then click the action button.
|
|
454
|
+
const button = page.childNodes[2].childNodes[0];
|
|
455
|
+
_react.fireEvent.click(button, {});
|
|
538
456
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
457
|
+
// And confirm an appropriate action was received.
|
|
458
|
+
expect(ON_ACTION_CALLS.length).toEqual(1);
|
|
459
|
+
expect(NESTED_PAGE.formData.parent[0].child[0].text).toEqual(NEW_VALUE);
|
|
460
|
+
expect(ON_ACTION_CALLS[0].action).toEqual(_models.PageAction.DEFAULTS.submit);
|
|
461
|
+
expect(ON_ACTION_CALLS[0].patch).toEqual({
|
|
462
|
+
parent: [{
|
|
463
|
+
id: '001',
|
|
464
|
+
child: [{
|
|
465
|
+
id: '001',
|
|
466
|
+
text: NEW_VALUE
|
|
467
|
+
}]
|
|
468
|
+
}]
|
|
469
|
+
});
|
|
470
|
+
});
|
|
471
|
+
it('should handle a page action appropriately, creating a new active entry if there isn\'t one', async () => {
|
|
472
|
+
// Make sure there is no active entry.
|
|
473
|
+
NESTED_PAGE.formData.childActiveId = 'newId';
|
|
474
|
+
const {
|
|
475
|
+
container
|
|
476
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_CollectionPage.default, {
|
|
477
|
+
page: NESTED_PAGE,
|
|
478
|
+
onAction: ON_ACTION
|
|
479
|
+
}));
|
|
480
|
+
const page = container.childNodes[0];
|
|
542
481
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
return _context10.stop();
|
|
482
|
+
// Change the input.
|
|
483
|
+
const input = page.childNodes[1].childNodes[2];
|
|
484
|
+
const NEW_VALUE = `${VALUE}.`;
|
|
485
|
+
const CHANGE_EVENT = {
|
|
486
|
+
target: {
|
|
487
|
+
name: TEXT.fieldId,
|
|
488
|
+
value: NEW_VALUE
|
|
551
489
|
}
|
|
552
|
-
}
|
|
553
|
-
|
|
490
|
+
};
|
|
491
|
+
_react.fireEvent.change(input, CHANGE_EVENT);
|
|
492
|
+
|
|
493
|
+
// Then click the action button.
|
|
494
|
+
const button = page.childNodes[2].childNodes[0];
|
|
495
|
+
_react.fireEvent.click(button, {});
|
|
496
|
+
|
|
497
|
+
// And confirm an appropriate action was received.
|
|
498
|
+
expect(ON_ACTION_CALLS.length).toEqual(1);
|
|
499
|
+
expect(NESTED_PAGE.formData.parent[0].child[1].text).toEqual(NEW_VALUE);
|
|
500
|
+
expect(NESTED_PAGE.formData.parent[0].child[1].id).toBeTruthy();
|
|
501
|
+
expect(ON_ACTION_CALLS[0].action).toEqual(_models.PageAction.DEFAULTS.submit);
|
|
502
|
+
});
|
|
554
503
|
});
|
|
555
504
|
});
|
|
556
505
|
});
|