@ukhomeoffice/cop-react-form-renderer 5.14.2 → 5.14.4
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 +94 -128
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +99 -129
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +291 -501
- package/dist/components/CheckYourAnswers/index.js +2 -3
- package/dist/components/CollectionPage/CollectionPage.js +64 -58
- package/dist/components/CollectionPage/CollectionPage.test.js +212 -238
- package/dist/components/CollectionPage/index.js +2 -3
- package/dist/components/FormComponent/Collection.js +77 -113
- package/dist/components/FormComponent/Collection.test.js +688 -787
- package/dist/components/FormComponent/Container.js +44 -43
- package/dist/components/FormComponent/Container.test.js +316 -346
- package/dist/components/FormComponent/FormComponent.js +58 -64
- package/dist/components/FormComponent/FormComponent.test.js +180 -219
- package/dist/components/FormComponent/helpers/addLabel.js +5 -9
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +2 -3
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +2 -2
- 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 +2 -3
- package/dist/components/FormPage/FormPage.js +65 -79
- package/dist/components/FormPage/FormPage.test.js +134 -170
- package/dist/components/FormPage/index.js +2 -3
- package/dist/components/FormRenderer/FormRenderer.js +151 -193
- package/dist/components/FormRenderer/FormRenderer.test.js +598 -920
- package/dist/components/FormRenderer/handlers/cyaAction.js +4 -5
- package/dist/components/FormRenderer/handlers/getPageId.js +2 -5
- 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 +3 -4
- package/dist/components/FormRenderer/handlers/navigate.js +5 -6
- package/dist/components/FormRenderer/handlers/submissionError.js +2 -3
- package/dist/components/FormRenderer/helpers/canActionProceed.js +2 -3
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +10 -10
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +2 -5
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +19 -27
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +17 -17
- package/dist/components/FormRenderer/helpers/getCYA.js +6 -9
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -10
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +19 -34
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +3 -6
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -13
- 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 +98 -92
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +66 -66
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
- package/dist/components/FormRenderer/helpers/index.js +3 -4
- package/dist/components/FormRenderer/index.js +2 -3
- package/dist/components/FormRenderer/onCYAAction.js +52 -62
- package/dist/components/FormRenderer/onCYAAction.test.js +146 -138
- package/dist/components/FormRenderer/onPageAction.js +48 -47
- package/dist/components/FormRenderer/onPageAction.test.js +219 -205
- package/dist/components/FormRenderer/onTaskAction.js +12 -17
- package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
- package/dist/components/PageActions/ActionButton.js +15 -19
- package/dist/components/PageActions/ActionButton.test.js +58 -79
- package/dist/components/PageActions/PageActions.js +12 -13
- package/dist/components/PageActions/PageActions.test.js +88 -116
- package/dist/components/PageActions/index.js +2 -3
- package/dist/components/SummaryList/GroupAction.js +15 -23
- package/dist/components/SummaryList/GroupAction.test.js +41 -37
- package/dist/components/SummaryList/RowAction.js +14 -19
- package/dist/components/SummaryList/RowAction.test.js +41 -37
- package/dist/components/SummaryList/SummaryList.js +25 -30
- package/dist/components/SummaryList/SummaryList.test.js +160 -182
- package/dist/components/SummaryList/SummaryListHeadingRow.js +9 -8
- package/dist/components/SummaryList/SummaryListRow.js +9 -8
- package/dist/components/SummaryList/SummaryListTitleRow.js +8 -7
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -8
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -8
- 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 +2 -3
- package/dist/components/TaskList/Task.js +22 -33
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +46 -75
- package/dist/components/TaskList/TaskList.test.js +118 -113
- package/dist/components/TaskList/TaskState.js +9 -9
- package/dist/components/TaskList/TaskState.test.js +56 -49
- package/dist/components/TaskList/index.js +2 -3
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +59 -85
- package/dist/context/HooksContext/HooksContext.test.js +28 -36
- package/dist/context/HooksContext/index.js +4 -6
- package/dist/context/ValidationContext/ValidationContext.js +35 -76
- package/dist/context/ValidationContext/ValidationContext.test.js +50 -61
- package/dist/context/ValidationContext/index.js +4 -6
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +17 -43
- package/dist/hooks/useGetRequest.js +61 -106
- package/dist/hooks/useHooks.js +2 -5
- package/dist/hooks/useRefData.js +29 -45
- package/dist/hooks/useValidation.js +2 -5
- package/dist/index.js +15 -17
- package/dist/models/CollectionLabels.js +2 -3
- package/dist/models/ComponentTypes.js +25 -26
- package/dist/models/EventTypes.js +5 -6
- package/dist/models/FormPages.js +5 -6
- package/dist/models/FormTypes.js +9 -10
- package/dist/models/HubFormats.js +4 -5
- package/dist/models/PageAction.js +45 -42
- package/dist/models/TaskStates.js +30 -31
- package/dist/models/index.js +11 -12
- package/dist/setupTests.js +20 -24
- package/dist/utils/CheckYourAnswers/getCYAAction.js +6 -7
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +18 -20
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +21 -23
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +18 -20
- package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +72 -72
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +20 -27
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +41 -47
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +71 -78
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +133 -114
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +27 -23
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +16 -23
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
- package/dist/utils/CheckYourAnswers/index.js +3 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +7 -9
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +9 -16
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +19 -20
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +4 -8
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +15 -15
- package/dist/utils/CollectionPage/index.js +3 -4
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -29
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +15 -15
- package/dist/utils/Component/addShowWhen.js +5 -10
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +20 -22
- package/dist/utils/Component/applyToComponentTree.test.js +28 -33
- package/dist/utils/Component/cleanAttributes.js +11 -16
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +7 -9
- package/dist/utils/Component/elevateNestedComponents.test.js +19 -19
- package/dist/utils/Component/getComponent.js +91 -99
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +51 -63
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +41 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -37
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +23 -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 +24 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +59 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +35 -41
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +24 -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 +14 -14
- package/dist/utils/Component/index.js +3 -4
- package/dist/utils/Component/isEditable.js +3 -7
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -3
- package/dist/utils/Component/optionIsSelected.test.js +10 -10
- package/dist/utils/Component/setupContainerComponentsPath.js +30 -33
- package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
- package/dist/utils/Component/showComponent.js +4 -6
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +6 -6
- package/dist/utils/Condition/index.js +3 -4
- package/dist/utils/Condition/meetsAllConditions.js +9 -10
- package/dist/utils/Condition/meetsAllConditions.test.js +18 -18
- package/dist/utils/Condition/meetsCondition.js +19 -27
- package/dist/utils/Condition/meetsCondition.test.js +377 -377
- package/dist/utils/Condition/meetsOneCondition.js +7 -8
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +15 -21
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +5 -8
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +3 -4
- package/dist/utils/Container/setupNesting.js +17 -24
- package/dist/utils/Container/setupNesting.test.js +28 -31
- package/dist/utils/Container/showContainer.js +5 -10
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +41 -52
- package/dist/utils/Data/applyFormula.test.js +26 -26
- package/dist/utils/Data/getAutocompleteSource.js +11 -14
- package/dist/utils/Data/getAutocompleteSource.test.js +59 -59
- package/dist/utils/Data/getDataPath.js +21 -32
- package/dist/utils/Data/getDataPath.test.js +20 -20
- package/dist/utils/Data/getOptions.js +22 -28
- package/dist/utils/Data/getOptions.test.js +21 -21
- package/dist/utils/Data/getSourceData.js +7 -21
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +3 -4
- package/dist/utils/Data/refDataToOptions.js +12 -17
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +8 -10
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +32 -48
- package/dist/utils/Data/setupFormData.test.js +99 -98
- package/dist/utils/Data/setupRefDataUrlForComponent.js +22 -30
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -12
- package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
- package/dist/utils/FormPage/getFormPage.js +17 -19
- package/dist/utils/FormPage/getFormPage.test.js +49 -48
- package/dist/utils/FormPage/getFormPages.js +9 -15
- package/dist/utils/FormPage/getFormPages.test.js +22 -25
- package/dist/utils/FormPage/getPageActions.js +11 -19
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +6 -9
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -4
- package/dist/utils/FormPage/showFormPage.js +5 -10
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +4 -5
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +21 -29
- package/dist/utils/FormPage/useComponent.test.js +71 -73
- package/dist/utils/Format/formatData.js +2 -3
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -9
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +7 -10
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -7
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +3 -4
- package/dist/utils/Hub/getFormHub.js +3 -4
- package/dist/utils/Hub/getFormHub.test.js +29 -32
- package/dist/utils/Hub/index.js +3 -4
- package/dist/utils/Meta/constants.js +2 -4
- package/dist/utils/Meta/documents/getDocuments.js +2 -6
- package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
- package/dist/utils/Meta/documents/index.js +3 -4
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -19
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
- package/dist/utils/Meta/index.js +3 -4
- package/dist/utils/Operate/checkValueIsTruthy.js +5 -6
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/getFirstOf.js +9 -10
- package/dist/utils/Operate/getFirstOf.test.js +33 -33
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +13 -14
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/index.js +3 -4
- package/dist/utils/Operate/persistValueInFormData.js +7 -8
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +10 -11
- package/dist/utils/Operate/runPageOperations.test.js +36 -37
- package/dist/utils/Operate/setValueInFormData.js +6 -7
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +9 -10
- package/dist/utils/Operate/shouldRun.test.js +22 -28
- package/dist/utils/Validate/additional/conditionallyRequired.js +5 -7
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -9
- package/dist/utils/Validate/additional/index.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeAfter.js +4 -5
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +4 -5
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -14
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +34 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +3 -4
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +5 -6
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +6 -7
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +3 -4
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +2 -3
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +3 -4
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeShorterThan.js +2 -3
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +4 -7
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +2 -3
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +4 -7
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -25
- package/dist/utils/Validate/index.js +3 -4
- package/dist/utils/Validate/validateCollection.js +22 -29
- package/dist/utils/Validate/validateCollection.test.js +85 -77
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +169 -147
- package/dist/utils/Validate/validateContainer.js +16 -22
- package/dist/utils/Validate/validateContainer.test.js +52 -48
- package/dist/utils/Validate/validateDate.js +14 -21
- package/dist/utils/Validate/validateDate.test.js +28 -29
- package/dist/utils/Validate/validateEmail.js +8 -11
- package/dist/utils/Validate/validateEmail.test.js +26 -26
- package/dist/utils/Validate/validateMultifile.js +6 -10
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +20 -22
- package/dist/utils/Validate/validatePage.test.js +146 -143
- package/dist/utils/Validate/validateRegex.js +6 -10
- package/dist/utils/Validate/validateRegex.test.js +17 -17
- package/dist/utils/Validate/validateRequired.js +6 -9
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +6 -9
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +8 -16
- package/dist/utils/Validate/validateTime.test.js +15 -15
- package/dist/utils/index.js +10 -12
- package/package.json +9 -6
|
@@ -6,27 +6,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _models = require("../../models");
|
|
8
8
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
9
|
-
function _interopRequireDefault(
|
|
10
|
-
|
|
11
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
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) {
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
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
|
-
if (hubDetails
|
|
22
|
+
if (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 {
|
|
@@ -44,5 +40,4 @@ var onTaskAction = function onTaskAction(currentTask, pages, setCurrentTask, hub
|
|
|
44
40
|
}
|
|
45
41
|
}
|
|
46
42
|
};
|
|
47
|
-
var _default = onTaskAction;
|
|
48
|
-
exports.default = _default;
|
|
43
|
+
var _default = exports.default = onTaskAction;
|
|
@@ -3,40 +3,32 @@
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
5
5
|
var _onTaskAction = _interopRequireDefault(require("./onTaskAction"));
|
|
6
|
-
function _interopRequireDefault(
|
|
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) {
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
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(
|
|
87
|
-
|
|
78
|
+
describe(`when currentTask has a state of ${_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(
|
|
141
|
-
it('should handle page change when formStatus has a current page for the task',
|
|
142
|
-
|
|
138
|
+
describe(`when currentTask has a state of ${_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 ${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
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var actionLabel = _models.PageAction.DEFAULTS[_action.type];
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, 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,14 +28,11 @@ 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
|
-
|
|
34
|
-
}
|
|
35
|
-
}), action.label || (actionLabel === null || actionLabel === void 0 ? void 0 : actionLabel.label) || DEFAULT_LABEL);
|
|
31
|
+
onClick: action.disabled ? () => {} : () => onAction(action)
|
|
32
|
+
}), action.label || actionLabel?.label || DEFAULT_LABEL);
|
|
36
33
|
};
|
|
37
34
|
ActionButton.propTypes = {
|
|
38
35
|
action: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]).isRequired,
|
|
39
36
|
onAction: _propTypes.default.func.isRequired
|
|
40
37
|
};
|
|
41
|
-
var _default = ActionButton;
|
|
42
|
-
exports.default = _default;
|
|
38
|
+
var _default = exports.default = ActionButton;
|
|
@@ -1,93 +1,72 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
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(
|
|
9
|
-
function _interopRequireWildcard(
|
|
10
|
-
function _interopRequireDefault(
|
|
11
|
-
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 exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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; }
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
// Global imports
|
|
11
|
+
|
|
12
|
+
// Local imports
|
|
13
|
+
|
|
14
|
+
describe('components', () => {
|
|
15
|
+
describe('PageActions.ActionButton', () => {
|
|
16
|
+
const ON_ACTION_CALLS = [];
|
|
17
|
+
const ON_ACTION = action => {
|
|
18
18
|
ON_ACTION_CALLS.push(action);
|
|
19
19
|
};
|
|
20
|
-
beforeEach(
|
|
20
|
+
beforeEach(() => {
|
|
21
21
|
ON_ACTION_CALLS.length = 0;
|
|
22
22
|
});
|
|
23
|
-
it('should handle an unknown action identifier',
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
case 0:
|
|
45
|
-
ACTION = _models.PageAction.TYPES.SUBMIT;
|
|
46
|
-
_render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_ActionButton.default, {
|
|
47
|
-
action: ACTION,
|
|
48
|
-
onAction: ON_ACTION
|
|
49
|
-
})), container = _render2.container;
|
|
50
|
-
button = container.childNodes[0];
|
|
51
|
-
expect(button.tagName).toEqual('BUTTON');
|
|
52
|
-
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);
|
|
53
44
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
_render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_ActionButton.default, {
|
|
75
|
-
action: ACTION,
|
|
76
|
-
onAction: ON_ACTION
|
|
77
|
-
})), container = _render3.container;
|
|
78
|
-
button = container.childNodes[0];
|
|
79
|
-
expect(button.tagName).toEqual('BUTTON');
|
|
80
|
-
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);
|
|
81
65
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
case "end":
|
|
88
|
-
return _context3.stop();
|
|
89
|
-
}
|
|
90
|
-
}, _callee3);
|
|
91
|
-
})));
|
|
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
|
+
});
|
|
92
71
|
});
|
|
93
72
|
});
|