@ukhomeoffice/cop-react-form-renderer 6.5.1-peter → 6.7.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +12 -12
  2. package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
  5. package/dist/components/CollectionPage/CollectionPage.js +73 -63
  6. package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +80 -76
  9. package/dist/components/CollectionSummary/CollectionSummary.js +97 -107
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +152 -142
  11. package/dist/components/CollectionSummary/Confirmation.js +14 -12
  12. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  13. package/dist/components/CollectionSummary/RenderListView.js +45 -51
  14. package/dist/components/CollectionSummary/RenderListView.test.js +78 -77
  15. package/dist/components/CollectionSummary/SummaryCard.js +104 -135
  16. package/dist/components/CollectionSummary/SummaryCard.test.js +930 -962
  17. package/dist/components/CollectionSummary/SummaryCardDetails.js +72 -71
  18. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +128 -135
  19. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +30 -35
  20. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -74
  21. package/dist/components/FormComponent/Collection.js +74 -108
  22. package/dist/components/FormComponent/Collection.test.js +909 -1081
  23. package/dist/components/FormComponent/Container.js +40 -38
  24. package/dist/components/FormComponent/Container.test.js +314 -345
  25. package/dist/components/FormComponent/FormComponent.js +69 -72
  26. package/dist/components/FormComponent/FormComponent.test.js +353 -414
  27. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  28. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  29. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  30. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  31. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  32. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  33. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  34. package/dist/components/FormComponent/helpers/index.js +4 -4
  35. package/dist/components/FormPage/FormPage.js +65 -80
  36. package/dist/components/FormPage/FormPage.test.js +127 -163
  37. package/dist/components/FormRenderer/FormRenderer.js +143 -179
  38. package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
  39. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  40. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  41. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  42. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  43. package/dist/components/FormRenderer/handlers/index.js +1 -1
  44. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  45. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  46. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  47. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  48. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  49. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
  50. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
  51. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  52. package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
  53. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  54. package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
  55. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  56. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
  57. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  58. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  59. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  60. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  61. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  62. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  63. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
  64. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
  65. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
  66. package/dist/components/FormRenderer/helpers/index.js +2 -4
  67. package/dist/components/FormRenderer/onCYAAction.js +59 -51
  68. package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
  69. package/dist/components/FormRenderer/onPageAction.js +44 -47
  70. package/dist/components/FormRenderer/onPageAction.test.js +223 -213
  71. package/dist/components/FormRenderer/onTaskAction.js +9 -13
  72. package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
  73. package/dist/components/PageActions/ActionButton.js +12 -15
  74. package/dist/components/PageActions/ActionButton.test.js +56 -78
  75. package/dist/components/PageActions/PageActions.js +10 -10
  76. package/dist/components/PageActions/PageActions.test.js +86 -115
  77. package/dist/components/SummaryList/GroupAction.js +9 -17
  78. package/dist/components/SummaryList/GroupAction.test.js +37 -33
  79. package/dist/components/SummaryList/RowAction.js +11 -16
  80. package/dist/components/SummaryList/RowAction.test.js +37 -33
  81. package/dist/components/SummaryList/SummaryList.js +21 -26
  82. package/dist/components/SummaryList/SummaryList.test.js +143 -166
  83. package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
  84. package/dist/components/SummaryList/SummaryListRow.js +6 -4
  85. package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
  86. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  87. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  88. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  89. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  90. package/dist/components/SummaryList/helpers/index.js +1 -1
  91. package/dist/components/TaskList/Task.js +19 -29
  92. package/dist/components/TaskList/Task.test.js +83 -76
  93. package/dist/components/TaskList/TaskList.js +45 -71
  94. package/dist/components/TaskList/TaskList.test.js +113 -111
  95. package/dist/components/TaskList/TaskState.js +7 -5
  96. package/dist/components/TaskList/TaskState.test.js +52 -45
  97. package/dist/components/index.js +7 -7
  98. package/dist/context/HooksContext/HooksContext.js +57 -80
  99. package/dist/context/HooksContext/HooksContext.test.js +26 -35
  100. package/dist/context/HooksContext/index.js +3 -4
  101. package/dist/context/ValidationContext/ValidationContext.js +43 -94
  102. package/dist/context/ValidationContext/ValidationContext.test.js +56 -68
  103. package/dist/context/ValidationContext/index.js +3 -4
  104. package/dist/context/index.js +2 -2
  105. package/dist/hooks/index.js +9 -10
  106. package/dist/hooks/useAxios.js +14 -40
  107. package/dist/hooks/useGetRequest.js +61 -97
  108. package/dist/hooks/useHooks.js +1 -3
  109. package/dist/hooks/useRefData.js +26 -39
  110. package/dist/hooks/useValidation.js +1 -3
  111. package/dist/index.js +13 -14
  112. package/dist/models/CollectionLabels.js +1 -1
  113. package/dist/models/ComponentTypes.js +25 -25
  114. package/dist/models/EventTypes.js +4 -4
  115. package/dist/models/FormPages.js +4 -4
  116. package/dist/models/FormTypes.js +8 -8
  117. package/dist/models/HubFormats.js +3 -3
  118. package/dist/models/PageAction.js +44 -38
  119. package/dist/models/TaskStates.js +29 -28
  120. package/dist/models/index.js +9 -9
  121. package/dist/setupTests.js +30 -31
  122. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  123. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
  124. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
  125. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
  126. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
  127. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
  128. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  129. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  130. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
  131. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
  132. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
  133. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
  134. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
  135. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
  136. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
  137. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
  138. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
  139. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
  140. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
  141. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
  142. package/dist/utils/CheckYourAnswers/index.js +1 -1
  143. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  144. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  145. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  146. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  147. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  148. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
  149. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +18 -20
  150. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +55 -26
  151. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  152. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  153. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  154. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  155. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  156. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  157. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  158. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +20 -22
  159. package/dist/utils/CollectionPage/getQuickEditPage.js +36 -28
  160. package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
  161. package/dist/utils/CollectionPage/index.js +1 -1
  162. package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
  163. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
  164. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
  165. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  166. package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
  167. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  168. package/dist/utils/Component/addShowWhen.js +4 -8
  169. package/dist/utils/Component/addShowWhen.test.js +37 -37
  170. package/dist/utils/Component/applyToComponentTree.js +18 -18
  171. package/dist/utils/Component/applyToComponentTree.test.js +27 -32
  172. package/dist/utils/Component/cleanAttributes.js +10 -13
  173. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  174. package/dist/utils/Component/elevateNestedComponents.js +5 -5
  175. package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
  176. package/dist/utils/Component/getComponent.js +88 -94
  177. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
  178. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
  179. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
  180. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
  181. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
  182. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
  183. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
  184. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
  185. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
  186. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
  187. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
  188. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
  189. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
  190. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
  191. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
  192. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
  193. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
  194. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
  195. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
  196. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
  197. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  198. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
  199. package/dist/utils/Component/getDefaultValue.js +6 -8
  200. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  201. package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
  202. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  203. package/dist/utils/Component/index.js +1 -1
  204. package/dist/utils/Component/isEditable.js +2 -4
  205. package/dist/utils/Component/isEditable.test.js +14 -15
  206. package/dist/utils/Component/optionIsSelected.js +1 -1
  207. package/dist/utils/Component/optionIsSelected.test.js +9 -9
  208. package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
  209. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  210. package/dist/utils/Component/showComponent.js +1 -1
  211. package/dist/utils/Component/showComponent.test.js +28 -28
  212. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  213. package/dist/utils/Condition/index.js +1 -1
  214. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  215. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  216. package/dist/utils/Condition/meetsCondition.js +16 -25
  217. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  218. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  219. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  220. package/dist/utils/Condition/setupConditions.js +13 -18
  221. package/dist/utils/Condition/setupConditions.test.js +7 -7
  222. package/dist/utils/Container/getEditableComponents.js +3 -5
  223. package/dist/utils/Container/getEditableComponents.test.js +43 -45
  224. package/dist/utils/Container/index.js +1 -1
  225. package/dist/utils/Container/setupNesting.js +16 -20
  226. package/dist/utils/Container/setupNesting.test.js +27 -30
  227. package/dist/utils/Container/showContainer.js +3 -7
  228. package/dist/utils/Container/showContainer.test.js +30 -30
  229. package/dist/utils/Data/applyFormula.js +38 -48
  230. package/dist/utils/Data/applyFormula.test.js +20 -20
  231. package/dist/utils/Data/getAutocompleteSource.js +18 -26
  232. package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
  233. package/dist/utils/Data/getDataPath.js +18 -28
  234. package/dist/utils/Data/getDataPath.test.js +12 -12
  235. package/dist/utils/Data/getOptions.js +24 -30
  236. package/dist/utils/Data/getOptions.test.js +27 -27
  237. package/dist/utils/Data/getSourceData.js +6 -19
  238. package/dist/utils/Data/getSourceData.test.js +84 -80
  239. package/dist/utils/Data/index.js +1 -1
  240. package/dist/utils/Data/nestInRefdataOptions.js +9 -16
  241. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  242. package/dist/utils/Data/refDataToOptions.js +10 -13
  243. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  244. package/dist/utils/Data/setDataItem.js +7 -8
  245. package/dist/utils/Data/setDataItem.test.js +37 -37
  246. package/dist/utils/Data/setupFormData.js +13 -21
  247. package/dist/utils/Data/setupFormData.test.js +51 -50
  248. package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
  249. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  250. package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
  251. package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
  252. package/dist/utils/FormPage/getConditionalText.js +3 -3
  253. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  254. package/dist/utils/FormPage/getFormPage.js +15 -16
  255. package/dist/utils/FormPage/getFormPage.test.js +47 -46
  256. package/dist/utils/FormPage/getFormPages.js +7 -12
  257. package/dist/utils/FormPage/getFormPages.test.js +20 -23
  258. package/dist/utils/FormPage/getPageActions.js +9 -15
  259. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  260. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  261. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  262. package/dist/utils/FormPage/index.js +2 -4
  263. package/dist/utils/FormPage/showFormPage.js +3 -7
  264. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  265. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  266. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  267. package/dist/utils/FormPage/useComponent.js +21 -28
  268. package/dist/utils/FormPage/useComponent.test.js +77 -79
  269. package/dist/utils/Format/formatData.js +1 -1
  270. package/dist/utils/Format/formatData.test.js +18 -18
  271. package/dist/utils/Format/formatDataForComponent.js +5 -6
  272. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  273. package/dist/utils/Format/formatDataForForm.js +6 -8
  274. package/dist/utils/Format/formatDataForForm.test.js +13 -16
  275. package/dist/utils/Format/formatDataForPage.js +4 -5
  276. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  277. package/dist/utils/Format/index.js +1 -1
  278. package/dist/utils/Hub/getFormHub.js +1 -1
  279. package/dist/utils/Hub/getFormHub.test.js +28 -31
  280. package/dist/utils/Hub/index.js +1 -1
  281. package/dist/utils/Meta/constants.js +2 -2
  282. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  283. package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
  284. package/dist/utils/Meta/documents/index.js +1 -1
  285. package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
  286. package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
  287. package/dist/utils/Meta/index.js +1 -1
  288. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  289. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  290. package/dist/utils/Operate/getFirstOf.js +5 -5
  291. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  292. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  293. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
  294. package/dist/utils/Operate/index.js +1 -1
  295. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  296. package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
  297. package/dist/utils/Operate/runPageOperations.js +7 -7
  298. package/dist/utils/Operate/runPageOperations.test.js +35 -36
  299. package/dist/utils/Operate/setValueInFormData.js +2 -2
  300. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  301. package/dist/utils/Operate/shouldRun.js +6 -6
  302. package/dist/utils/Operate/shouldRun.test.js +21 -27
  303. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  304. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  305. package/dist/utils/Validate/additional/index.js +6 -6
  306. package/dist/utils/Validate/additional/index.test.js +12 -12
  307. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  308. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  309. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  310. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  311. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
  312. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
  313. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  314. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  315. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  316. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  317. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  318. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  319. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  320. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  321. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  322. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  323. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  325. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  326. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  327. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
  328. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
  329. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  330. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
  331. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  332. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  333. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  334. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  335. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  336. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
  337. package/dist/utils/Validate/additional/utils.js +9 -22
  338. package/dist/utils/Validate/index.js +1 -1
  339. package/dist/utils/Validate/validateCollection.js +19 -25
  340. package/dist/utils/Validate/validateCollection.test.js +74 -66
  341. package/dist/utils/Validate/validateComponent.js +17 -15
  342. package/dist/utils/Validate/validateComponent.test.js +167 -146
  343. package/dist/utils/Validate/validateContainer.js +15 -20
  344. package/dist/utils/Validate/validateContainer.test.js +58 -52
  345. package/dist/utils/Validate/validateDate.js +15 -21
  346. package/dist/utils/Validate/validateDate.test.js +31 -32
  347. package/dist/utils/Validate/validateEmail.js +6 -8
  348. package/dist/utils/Validate/validateEmail.test.js +25 -25
  349. package/dist/utils/Validate/validateMultifile.js +5 -7
  350. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  351. package/dist/utils/Validate/validatePage.js +19 -22
  352. package/dist/utils/Validate/validatePage.test.js +215 -203
  353. package/dist/utils/Validate/validateRegex.js +3 -5
  354. package/dist/utils/Validate/validateRegex.test.js +14 -14
  355. package/dist/utils/Validate/validateRequired.js +4 -6
  356. package/dist/utils/Validate/validateRequired.test.js +18 -18
  357. package/dist/utils/Validate/validateTextArea.js +4 -6
  358. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  359. package/dist/utils/Validate/validateTime.js +11 -18
  360. package/dist/utils/Validate/validateTime.test.js +16 -16
  361. package/dist/utils/index.js +7 -9
  362. package/package.json +2 -2
  363. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
  364. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
  365. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-after.json +0 -429
  366. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-before.json +0 -449
  367. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-form.json +0 -15219
  368. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-after.json +0 -516
  369. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-before.json +0 -593
  370. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab2-form.json +0 -15219
  371. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-after.json +0 -84
  372. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-before.json +0 -98
  373. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-form.json +0 -9158
  374. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
  375. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
  376. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
  377. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
  378. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
  379. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
  380. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
  381. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
  382. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
  383. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
  384. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
  385. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test.json +0 -1605
  386. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test2.json +0 -205
  387. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -206
  388. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -143
  389. package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -26
  390. package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
@@ -3,129 +3,130 @@
3
3
  var _models = require("../../models");
4
4
  var _validateComponent = _interopRequireDefault(require("./validateComponent"));
5
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
7
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
- 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; }
9
- 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; }
10
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
11
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
12
- describe('utils.Validate.Component', function () {
13
- var setup = function setup(id, type, label, required, additionalValidation) {
14
- return {
15
- id: id,
16
- fieldId: id,
17
- type: type,
18
- label: label,
19
- required: required,
20
- additionalValidation: additionalValidation
21
- };
22
- };
23
- it('should return no error when the component is null', function () {
6
+ // Local imports
7
+
8
+ describe('utils.Validate.Component', () => {
9
+ const setup = (id, type, label, required, additionalValidation) => ({
10
+ id,
11
+ fieldId: id,
12
+ type,
13
+ label,
14
+ required,
15
+ additionalValidation
16
+ });
17
+ it('should return no error when the component is null', () => {
24
18
  expect((0, _validateComponent.default)(null, {})).toBeUndefined();
25
19
  });
26
- describe('when there is no form data', function () {
27
- it('should return no error when the component is not required and not an email type', function () {
28
- var ID = 'field';
29
- var LABEL = 'Field';
30
- var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
20
+ describe('when there is no form data', () => {
21
+ it('should return no error when the component is not required and not an email type', () => {
22
+ const ID = 'field';
23
+ const LABEL = 'Field';
24
+ const COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
31
25
  expect((0, _validateComponent.default)(COMPONENT, null)).toBeUndefined();
32
26
  });
33
- it('should return a required error when the component is required and not an email type', function () {
34
- var ID = 'field';
35
- var LABEL = 'Field';
36
- var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, true);
27
+ it('should return a required error when the component is required and not an email type', () => {
28
+ const ID = 'field';
29
+ const LABEL = 'Field';
30
+ const COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, true);
37
31
  expect((0, _validateComponent.default)(COMPONENT, null)).toEqual({
38
32
  id: ID,
39
33
  error: "".concat(LABEL, " is required")
40
34
  });
41
35
  });
42
- it('should return a required error when the component is required and of type email', function () {
43
- var ID = 'field';
44
- var LABEL = 'Field';
45
- var COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, true);
36
+ it('should return a required error when the component is required and of type email', () => {
37
+ const ID = 'field';
38
+ const LABEL = 'Field';
39
+ const COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, true);
46
40
  expect((0, _validateComponent.default)(COMPONENT, null)).toEqual({
47
41
  id: ID,
48
42
  error: "".concat(LABEL, " is required")
49
43
  });
50
44
  });
51
- it('should return a required error when the component is required and of type collection summary', function () {
52
- var ID = 'field';
53
- var LABEL = 'Field';
54
- var COMPONENT = _objectSpread(_objectSpread({}, setup(ID, _models.ComponentTypes.COLLECTION_SUMMARY, LABEL, true)), {}, {
45
+ it('should return a required error when the component is required and of type collection summary', () => {
46
+ const ID = 'field';
47
+ const LABEL = 'Field';
48
+ const COMPONENT = {
49
+ ...setup(ID, _models.ComponentTypes.COLLECTION_SUMMARY, LABEL, true),
55
50
  collectionName: 'testCollection'
56
- });
51
+ };
57
52
  expect((0, _validateComponent.default)(COMPONENT, {})).toEqual({
58
53
  id: ID,
59
54
  error: "".concat(LABEL, " is required")
60
55
  });
61
56
  });
62
- it('should return no error when the component is of type email but not required', function () {
63
- var ID = 'field';
64
- var LABEL = 'Field';
65
- var COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, false);
57
+ it('should return no error when the component is of type email but not required', () => {
58
+ const ID = 'field';
59
+ const LABEL = 'Field';
60
+ const COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, false);
66
61
  expect((0, _validateComponent.default)(COMPONENT, null)).toBeUndefined();
67
62
  });
68
63
  });
69
- describe('when the value is fully valid', function () {
70
- var ID = 'field';
71
- var DATA = _defineProperty({}, ID, 'alpha.bravo@digital.homeoffice.gov.uk');
72
- it('should return no error when the component is not required and not an email type', function () {
73
- var LABEL = 'Field';
74
- var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
64
+ describe('when the value is fully valid', () => {
65
+ const ID = 'field';
66
+ const DATA = {
67
+ [ID]: 'alpha.bravo@digital.homeoffice.gov.uk'
68
+ };
69
+ it('should return no error when the component is not required and not an email type', () => {
70
+ const LABEL = 'Field';
71
+ const COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
75
72
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toBeUndefined();
76
73
  });
77
- it('should return no error when the component is required and not an email type', function () {
78
- var LABEL = 'Field';
79
- var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, true);
74
+ it('should return no error when the component is required and not an email type', () => {
75
+ const LABEL = 'Field';
76
+ const COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, true);
80
77
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toBeUndefined();
81
78
  });
82
- it('should return no error when the component is required and of type email', function () {
83
- var LABEL = 'Field';
84
- var COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, true);
79
+ it('should return no error when the component is required and of type email', () => {
80
+ const LABEL = 'Field';
81
+ const COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, true);
85
82
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toBeUndefined();
86
83
  });
87
- it('should return no error when the component is of type email but not required', function () {
88
- var LABEL = 'Field';
89
- var COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, false);
84
+ it('should return no error when the component is of type email but not required', () => {
85
+ const LABEL = 'Field';
86
+ const COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, false);
90
87
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toBeUndefined();
91
88
  });
92
89
  });
93
- describe('when the value is an invalid email', function () {
94
- var ID = 'field';
95
- var DATA = _defineProperty({}, ID, 'alpha.bravo@hotmail.com');
96
- it('should return no error when the component is not required and not an email type', function () {
97
- var LABEL = 'Field';
98
- var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
90
+ describe('when the value is an invalid email', () => {
91
+ const ID = 'field';
92
+ const DATA = {
93
+ [ID]: 'alpha.bravo@hotmail.com'
94
+ };
95
+ it('should return no error when the component is not required and not an email type', () => {
96
+ const LABEL = 'Field';
97
+ const COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
99
98
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toBeUndefined();
100
99
  });
101
- it('should return no error when the component is required and not an email type', function () {
102
- var LABEL = 'Field';
103
- var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, true);
100
+ it('should return no error when the component is required and not an email type', () => {
101
+ const LABEL = 'Field';
102
+ const COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, true);
104
103
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toBeUndefined();
105
104
  });
106
- it('should return no error when the component is required and of type email', function () {
107
- var LABEL = 'Field';
108
- var COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, true);
105
+ it('should return no error when the component is required and of type email', () => {
106
+ const LABEL = 'Field';
107
+ const COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, true);
109
108
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
110
109
  id: ID,
111
110
  error: "Enter ".concat(LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk")
112
111
  });
113
112
  });
114
- it('should return no error when the component is of type email but not required', function () {
115
- var LABEL = 'Field';
116
- var COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, false);
113
+ it('should return no error when the component is of type email but not required', () => {
114
+ const LABEL = 'Field';
115
+ const COMPONENT = setup(ID, _models.ComponentTypes.EMAIL, LABEL, false);
117
116
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
118
117
  id: ID,
119
118
  error: "Enter ".concat(LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk")
120
119
  });
121
120
  });
122
121
  });
123
- describe('when the component is a Date Input', function () {
124
- var ID = 'field';
125
- it('should always reject invalid dates', function () {
126
- var LABEL = 'Field';
127
- var COMPONENT = setup(ID, _models.ComponentTypes.DATE, LABEL, false);
128
- var DATA = _defineProperty({}, ID, '25-45-2033');
122
+ describe('when the component is a Date Input', () => {
123
+ const ID = 'field';
124
+ it('should always reject invalid dates', () => {
125
+ const LABEL = 'Field';
126
+ const COMPONENT = setup(ID, _models.ComponentTypes.DATE, LABEL, false);
127
+ const DATA = {
128
+ [ID]: '25-45-2033'
129
+ };
129
130
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
130
131
  error: 'Month must be between 1 and 12',
131
132
  id: ID,
@@ -134,16 +135,18 @@ describe('utils.Validate.Component', function () {
134
135
  }
135
136
  });
136
137
  });
137
- it('should apply optional validators when specified', function () {
138
- var LABEL = 'Field';
139
- var DATA = _defineProperty({}, ID, '25-3-3033');
140
- var ADDITIONAL_VALIDATION = [{
138
+ it('should apply optional validators when specified', () => {
139
+ const LABEL = 'Field';
140
+ const DATA = {
141
+ [ID]: '25-3-3033'
142
+ };
143
+ const ADDITIONAL_VALIDATION = [{
141
144
  function: 'mustBeBefore',
142
145
  value: 3,
143
146
  unit: 'day',
144
147
  message: 'Date must be less than 3 days in the future'
145
148
  }];
146
- var COMPONENT = setup(ID, _models.ComponentTypes.DATE, LABEL, false, ADDITIONAL_VALIDATION);
149
+ const COMPONENT = setup(ID, _models.ComponentTypes.DATE, LABEL, false, ADDITIONAL_VALIDATION);
147
150
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
148
151
  error: 'Date must be less than 3 days in the future',
149
152
  id: ID,
@@ -155,12 +158,14 @@ describe('utils.Validate.Component', function () {
155
158
  });
156
159
  });
157
160
  });
158
- describe('when the component is a Time Input', function () {
159
- var ID = 'field';
160
- it('should always reject invalid time', function () {
161
- var LABEL = 'Field';
162
- var COMPONENT = setup(ID, _models.ComponentTypes.TIME, LABEL, false);
163
- var DATA = _defineProperty({}, ID, '25:45');
161
+ describe('when the component is a Time Input', () => {
162
+ const ID = 'field';
163
+ it('should always reject invalid time', () => {
164
+ const LABEL = 'Field';
165
+ const COMPONENT = setup(ID, _models.ComponentTypes.TIME, LABEL, false);
166
+ const DATA = {
167
+ [ID]: '25:45'
168
+ };
164
169
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
165
170
  error: 'Hour must be between 0 and 23',
166
171
  id: ID,
@@ -170,38 +175,50 @@ describe('utils.Validate.Component', function () {
170
175
  });
171
176
  });
172
177
  });
173
- describe('when the component is a container', function () {
174
- it('should return an empty array when the container has only valid components', function () {
175
- var EMAIL_ID = 'email';
176
- var EMAIL_LABEL = 'Email';
177
- var EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
178
- var ID = 'container';
179
- var LABEL = 'field';
180
- var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
178
+ describe('when the component is a container', () => {
179
+ it('should return an empty array when the container has only valid components', () => {
180
+ const EMAIL_ID = 'email';
181
+ const EMAIL_LABEL = 'Email';
182
+ const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
183
+ const ID = 'container';
184
+ const LABEL = 'field';
185
+ const CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
181
186
  CONTAINER.components = [EMAIL];
182
- var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.gov.uk'));
187
+ const DATA = {
188
+ [ID]: {
189
+ [EMAIL_ID]: 'alpha.bravo@digital.homeoffice.gov.uk'
190
+ }
191
+ };
183
192
  expect((0, _validateComponent.default)(CONTAINER, DATA)).toEqual([]);
184
193
  });
185
194
  });
186
- describe('when the component is a collection', function () {
187
- it('should return an empty array when the collection has only valid items', function () {
188
- var EMAIL_ID = 'email';
189
- var EMAIL_LABEL = 'Email';
190
- var EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
191
- var ID = 'collection';
192
- var LABEL = 'field';
193
- var COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false);
195
+ describe('when the component is a collection', () => {
196
+ it('should return an empty array when the collection has only valid items', () => {
197
+ const EMAIL_ID = 'email';
198
+ const EMAIL_LABEL = 'Email';
199
+ const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
200
+ const ID = 'collection';
201
+ const LABEL = 'field';
202
+ const COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false);
194
203
  COLLECTION.item = [EMAIL];
195
- var DATA = _defineProperty({}, ID, [_defineProperty({}, EMAIL_ID, 'alpha.bravo@homeoffice.gov.uk'), _defineProperty({}, EMAIL_ID, 'charlie.delta@homeoffice.gov.uk')]);
204
+ const DATA = {
205
+ [ID]: [{
206
+ [EMAIL_ID]: 'alpha.bravo@homeoffice.gov.uk'
207
+ }, {
208
+ [EMAIL_ID]: 'charlie.delta@homeoffice.gov.uk'
209
+ }]
210
+ };
196
211
  expect((0, _validateComponent.default)(COLLECTION, DATA)).toEqual([]);
197
212
  });
198
213
  });
199
- describe('when the component has a nested component', function () {
200
- it('should return no error when the radio component contains nested components without errors', function () {
201
- var NESTED_ID = 'nestedId';
202
- var NESTED_VALUE = 'nestedValue';
203
- var FORMDATA = _defineProperty({}, NESTED_ID, NESTED_VALUE);
204
- var COMPONENT = {
214
+ describe('when the component has a nested component', () => {
215
+ it('should return no error when the radio component contains nested components without errors', () => {
216
+ const NESTED_ID = 'nestedId';
217
+ const NESTED_VALUE = 'nestedValue';
218
+ const FORMDATA = {
219
+ [NESTED_ID]: NESTED_VALUE
220
+ };
221
+ const COMPONENT = {
205
222
  type: 'radios',
206
223
  id: 'a',
207
224
  data: {
@@ -217,10 +234,10 @@ describe('utils.Validate.Component', function () {
217
234
  };
218
235
  expect((0, _validateComponent.default)(COMPONENT, undefined, FORMDATA)).toBeUndefined();
219
236
  });
220
- it('should return an error when the radio component contains nested components with errors', function () {
221
- var NESTED_ID = 'nestedId';
222
- var FORMDATA = {};
223
- var COMPONENT = {
237
+ it('should return an error when the radio component contains nested components with errors', () => {
238
+ const NESTED_ID = 'nestedId';
239
+ const FORMDATA = {};
240
+ const COMPONENT = {
224
241
  type: 'radios',
225
242
  id: 'a',
226
243
  data: {
@@ -239,9 +256,9 @@ describe('utils.Validate.Component', function () {
239
256
  error: "Field is required"
240
257
  }]);
241
258
  });
242
- it('should return no error when a non selected radio component contains nested components with errors', function () {
243
- var NESTED_ID = 'nestedId';
244
- var COMPONENT = {
259
+ it('should return no error when a non selected radio component contains nested components with errors', () => {
260
+ const NESTED_ID = 'nestedId';
261
+ const COMPONENT = {
245
262
  type: 'radios',
246
263
  id: 'a',
247
264
  data: {
@@ -258,11 +275,13 @@ describe('utils.Validate.Component', function () {
258
275
  };
259
276
  expect((0, _validateComponent.default)(COMPONENT, undefined, {})).toBeUndefined();
260
277
  });
261
- it('should return no error when the checkbox component contains nested components without errors', function () {
262
- var NESTED_ID = 'nestedId';
263
- var NESTED_VALUE = 'nestedValue';
264
- var FORMDATA = _defineProperty({}, NESTED_ID, NESTED_VALUE);
265
- var COMPONENT = {
278
+ it('should return no error when the checkbox component contains nested components without errors', () => {
279
+ const NESTED_ID = 'nestedId';
280
+ const NESTED_VALUE = 'nestedValue';
281
+ const FORMDATA = {
282
+ [NESTED_ID]: NESTED_VALUE
283
+ };
284
+ const COMPONENT = {
266
285
  type: 'checkboxes',
267
286
  id: 'a',
268
287
  data: {
@@ -278,13 +297,13 @@ describe('utils.Validate.Component', function () {
278
297
  };
279
298
  expect((0, _validateComponent.default)(COMPONENT, undefined, FORMDATA)).toBeUndefined();
280
299
  });
281
- it('should return an error when the checkbox component contains nested components with errors', function () {
282
- var NESTED_ID = 'nestedId';
283
- var OPTION_VALUE = 'optionValue';
284
- var FORMDATA = {
300
+ it('should return an error when the checkbox component contains nested components with errors', () => {
301
+ const NESTED_ID = 'nestedId';
302
+ const OPTION_VALUE = 'optionValue';
303
+ const FORMDATA = {
285
304
  'a': [OPTION_VALUE]
286
305
  };
287
- var COMPONENT = {
306
+ const COMPONENT = {
288
307
  type: 'checkboxes',
289
308
  id: 'a',
290
309
  data: {
@@ -304,14 +323,15 @@ describe('utils.Validate.Component', function () {
304
323
  error: "Field is required"
305
324
  }]);
306
325
  });
307
- it('should return no error when a non selected checkbox component contains nested components with errors', function () {
308
- var NESTED_ID_NOT_SELECTED = 'nestedIdNotSelected';
309
- var NESTED_ID_SELECTED = 'nestedIdSelected';
310
- var NESTED_VALUE_SELECTED = 'nestedValueSelected';
311
- var FORMDATA = _defineProperty({
312
- 'a': ['optionValueSelected']
313
- }, NESTED_ID_SELECTED, NESTED_VALUE_SELECTED);
314
- var COMPONENT = {
326
+ it('should return no error when a non selected checkbox component contains nested components with errors', () => {
327
+ const NESTED_ID_NOT_SELECTED = 'nestedIdNotSelected';
328
+ const NESTED_ID_SELECTED = 'nestedIdSelected';
329
+ const NESTED_VALUE_SELECTED = 'nestedValueSelected';
330
+ const FORMDATA = {
331
+ 'a': ['optionValueSelected'],
332
+ [NESTED_ID_SELECTED]: NESTED_VALUE_SELECTED
333
+ };
334
+ const COMPONENT = {
315
335
  type: 'checkboxes',
316
336
  id: 'a',
317
337
  data: {
@@ -338,16 +358,17 @@ describe('utils.Validate.Component', function () {
338
358
  };
339
359
  expect((0, _validateComponent.default)(COMPONENT, undefined, FORMDATA)).toBeUndefined();
340
360
  });
341
- it('should return no error when all selected checkbox components contains nested components without errors', function () {
342
- var _FORMDATA4;
343
- var NESTED_ID_SELECTED_1 = 'nestedIdSelected1';
344
- var NESTED_ID_SELECTED_2 = 'nestedIdSelected2';
345
- var NESTED_VALUE_SELECTED_1 = 'nestedValueSelected1';
346
- var NESTED_VALUE_SELECTED_2 = 'nestedValueSelected2';
347
- var FORMDATA = (_FORMDATA4 = {
348
- 'a': ['optionValueSelected1', 'optionValueSelected2']
349
- }, _defineProperty(_FORMDATA4, NESTED_ID_SELECTED_1, NESTED_VALUE_SELECTED_1), _defineProperty(_FORMDATA4, NESTED_ID_SELECTED_2, NESTED_VALUE_SELECTED_2), _FORMDATA4);
350
- var COMPONENT = {
361
+ it('should return no error when all selected checkbox components contains nested components without errors', () => {
362
+ const NESTED_ID_SELECTED_1 = 'nestedIdSelected1';
363
+ const NESTED_ID_SELECTED_2 = 'nestedIdSelected2';
364
+ const NESTED_VALUE_SELECTED_1 = 'nestedValueSelected1';
365
+ const NESTED_VALUE_SELECTED_2 = 'nestedValueSelected2';
366
+ const FORMDATA = {
367
+ 'a': ['optionValueSelected1', 'optionValueSelected2'],
368
+ [NESTED_ID_SELECTED_1]: NESTED_VALUE_SELECTED_1,
369
+ [NESTED_ID_SELECTED_2]: NESTED_VALUE_SELECTED_2
370
+ };
371
+ const COMPONENT = {
351
372
  type: 'checkboxes',
352
373
  id: 'a',
353
374
  data: {
@@ -8,12 +8,8 @@ var _elevateNestedComponents = _interopRequireDefault(require("../Component/elev
8
8
  var _validateComponent = _interopRequireDefault(require("./validateComponent"));
9
9
  var _additional = _interopRequireDefault(require("./additional"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
- 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; }
14
- 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; }
15
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
11
+ // Local imports
12
+
17
13
  /**
18
14
  * Validates all components within a container.
19
15
  * @param {object} container The container to validate.
@@ -21,34 +17,33 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
21
17
  * @param {object} formData The data at the top level of the form.
22
18
  * @returns Errors for all components within the container.
23
19
  */
24
- var validateContainer = function validateContainer(container, outerData, formData) {
20
+ const validateContainer = (container, outerData, formData) => {
25
21
  if (!container) {
26
22
  return [];
27
23
  }
28
- var fd = formData || outerData;
29
- var error = (0, _additional.default)(container, fd);
24
+ const fd = formData || outerData;
25
+ const error = (0, _additional.default)(container, fd);
30
26
  if (error) {
31
27
  return {
32
28
  id: container.id,
33
- error: error
29
+ error
34
30
  };
35
31
  }
36
- var errors = [];
32
+ const errors = [];
37
33
  if (Array.isArray(container.components)) {
38
- var containerData = outerData && container.fieldId ? outerData[container.fieldId] : outerData;
39
- var fullContainerComponents = (0, _elevateNestedComponents.default)(container.components, containerData);
40
- fullContainerComponents.forEach(function (component) {
34
+ const containerData = outerData && container.fieldId ? outerData[container.fieldId] : outerData;
35
+ const fullContainerComponents = (0, _elevateNestedComponents.default)(container.components, containerData);
36
+ fullContainerComponents.forEach(component => {
41
37
  // It is possible that the container being passed in is a
42
38
  // dummy container just for validation. In that scenario we want
43
39
  // to ignore the full_path and just use the component's fieldId.
44
- var fullPath = container.full_path || container.fieldId ? "".concat(container.full_path || container.fieldId, ".").concat(component.fieldId) : component.fieldId;
45
- errors.push((0, _validateComponent.default)(_objectSpread(_objectSpread({}, component), {}, {
40
+ const fullPath = container.full_path || container.fieldId ? "".concat(container.full_path || container.fieldId, ".").concat(component.fieldId) : component.fieldId;
41
+ errors.push((0, _validateComponent.default)({
42
+ ...component,
46
43
  full_path: fullPath
47
- }), containerData, fd));
44
+ }, containerData, fd));
48
45
  });
49
46
  }
50
- return errors.flat(1).filter(function (e) {
51
- return !!e;
52
- });
47
+ return errors.flat(1).filter(e => !!e);
53
48
  };
54
49
  var _default = exports.default = validateContainer;