@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +22 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
  5. package/dist/components/CollectionPage/CollectionPage.js +63 -73
  6. package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
  9. package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
  11. package/dist/components/CollectionSummary/Confirmation.js +12 -14
  12. package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
  13. package/dist/components/CollectionSummary/RenderListView.js +52 -46
  14. package/dist/components/CollectionSummary/RenderListView.scss +1 -1
  15. package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
  16. package/dist/components/CollectionSummary/SummaryCard.js +152 -110
  17. package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
  18. package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
  19. package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
  20. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
  21. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
  22. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
  23. package/dist/components/FormComponent/Collection.js +108 -74
  24. package/dist/components/FormComponent/Collection.test.js +1081 -909
  25. package/dist/components/FormComponent/Container.js +39 -40
  26. package/dist/components/FormComponent/Container.test.js +412 -312
  27. package/dist/components/FormComponent/FormComponent.js +72 -69
  28. package/dist/components/FormComponent/FormComponent.test.js +414 -353
  29. package/dist/components/FormComponent/helpers/addLabel.js +7 -4
  30. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  31. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  32. package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
  33. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  34. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
  35. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  36. package/dist/components/FormComponent/helpers/index.js +4 -4
  37. package/dist/components/FormPage/FormPage.js +80 -65
  38. package/dist/components/FormPage/FormPage.test.js +163 -127
  39. package/dist/components/FormRenderer/FormRenderer.js +180 -143
  40. package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
  41. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  42. package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
  43. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  44. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  45. package/dist/components/FormRenderer/handlers/index.js +1 -1
  46. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  47. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  48. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  49. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  50. package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
  51. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
  52. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
  53. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  54. package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
  55. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  56. package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
  57. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  58. package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
  59. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  60. package/dist/components/FormRenderer/helpers/getPage.js +4 -2
  61. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  62. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
  63. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  64. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  65. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
  66. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
  67. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
  68. package/dist/components/FormRenderer/helpers/index.js +1 -1
  69. package/dist/components/FormRenderer/onCYAAction.js +51 -59
  70. package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
  71. package/dist/components/FormRenderer/onPageAction.js +39 -43
  72. package/dist/components/FormRenderer/onPageAction.test.js +208 -223
  73. package/dist/components/FormRenderer/onTaskAction.js +13 -9
  74. package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
  75. package/dist/components/PageActions/ActionButton.js +15 -12
  76. package/dist/components/PageActions/ActionButton.test.js +78 -56
  77. package/dist/components/PageActions/PageActions.js +10 -10
  78. package/dist/components/PageActions/PageActions.test.js +115 -86
  79. package/dist/components/SummaryList/GroupAction.js +17 -9
  80. package/dist/components/SummaryList/GroupAction.test.js +33 -37
  81. package/dist/components/SummaryList/RowAction.js +16 -11
  82. package/dist/components/SummaryList/RowAction.test.js +33 -37
  83. package/dist/components/SummaryList/SummaryList.js +34 -21
  84. package/dist/components/SummaryList/SummaryList.scss +15 -0
  85. package/dist/components/SummaryList/SummaryList.test.js +226 -143
  86. package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
  87. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
  88. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
  89. package/dist/components/SummaryList/SummaryListRow.js +4 -6
  90. package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
  91. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
  92. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  93. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
  94. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  95. package/dist/components/SummaryList/helpers/index.js +1 -1
  96. package/dist/components/TaskList/Task.js +29 -19
  97. package/dist/components/TaskList/Task.test.js +76 -83
  98. package/dist/components/TaskList/TaskList.js +92 -49
  99. package/dist/components/TaskList/TaskList.scss +24 -0
  100. package/dist/components/TaskList/TaskList.test.js +255 -113
  101. package/dist/components/TaskList/TaskState.js +5 -7
  102. package/dist/components/TaskList/TaskState.test.js +45 -52
  103. package/dist/components/index.js +7 -7
  104. package/dist/context/HooksContext/HooksContext.js +80 -57
  105. package/dist/context/HooksContext/HooksContext.test.js +35 -26
  106. package/dist/context/HooksContext/index.js +4 -3
  107. package/dist/context/ValidationContext/ValidationContext.js +94 -43
  108. package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
  109. package/dist/context/ValidationContext/index.js +4 -3
  110. package/dist/context/index.js +2 -2
  111. package/dist/hooks/index.js +10 -9
  112. package/dist/hooks/useAxios.js +40 -14
  113. package/dist/hooks/useGetRequest.js +97 -61
  114. package/dist/hooks/useHooks.js +3 -1
  115. package/dist/hooks/useRefData.js +39 -26
  116. package/dist/hooks/useValidation.js +3 -1
  117. package/dist/index.js +14 -13
  118. package/dist/models/CollectionLabels.js +1 -1
  119. package/dist/models/ComponentTypes.js +25 -25
  120. package/dist/models/EventTypes.js +4 -4
  121. package/dist/models/FormPages.js +4 -4
  122. package/dist/models/FormTypes.js +8 -8
  123. package/dist/models/HubFormats.js +3 -3
  124. package/dist/models/PageAction.js +38 -44
  125. package/dist/models/TaskStates.js +28 -29
  126. package/dist/models/index.js +9 -9
  127. package/dist/setupTests.js +31 -30
  128. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  129. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
  130. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
  131. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
  132. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
  133. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
  134. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  135. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  136. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
  137. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
  138. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
  139. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
  140. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
  141. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
  142. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
  143. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
  144. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
  145. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
  146. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
  147. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
  148. package/dist/utils/CheckYourAnswers/index.js +1 -1
  149. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  150. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  151. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  152. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  153. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  154. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
  155. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
  156. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
  157. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  158. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  159. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
  160. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  161. package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
  162. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  163. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  164. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
  165. package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
  166. package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
  167. package/dist/utils/CollectionPage/index.js +1 -1
  168. package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
  169. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
  170. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
  171. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  172. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
  173. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  174. package/dist/utils/Component/addShowWhen.js +8 -4
  175. package/dist/utils/Component/addShowWhen.test.js +37 -37
  176. package/dist/utils/Component/applyToComponentTree.js +18 -18
  177. package/dist/utils/Component/applyToComponentTree.test.js +32 -27
  178. package/dist/utils/Component/cleanAttributes.js +13 -10
  179. package/dist/utils/Component/cleanAttributes.test.js +18 -17
  180. package/dist/utils/Component/elevateNestedComponents.js +7 -6
  181. package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
  182. package/dist/utils/Component/getComponent.js +94 -88
  183. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
  184. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
  185. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
  186. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
  187. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
  188. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
  190. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
  191. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
  192. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
  193. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
  194. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
  195. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
  196. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
  197. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
  198. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
  199. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
  200. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
  201. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
  202. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
  203. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  204. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
  205. package/dist/utils/Component/getDefaultValue.js +8 -6
  206. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  207. package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
  208. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  209. package/dist/utils/Component/index.js +1 -1
  210. package/dist/utils/Component/isEditable.js +4 -2
  211. package/dist/utils/Component/isEditable.test.js +15 -14
  212. package/dist/utils/Component/optionIsSelected.js +6 -1
  213. package/dist/utils/Component/optionIsSelected.test.js +35 -9
  214. package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
  215. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  216. package/dist/utils/Component/showComponent.js +1 -1
  217. package/dist/utils/Component/showComponent.test.js +28 -28
  218. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  219. package/dist/utils/Condition/index.js +1 -1
  220. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  221. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  222. package/dist/utils/Condition/meetsCondition.js +25 -16
  223. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  224. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  225. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  226. package/dist/utils/Condition/setupConditions.js +18 -13
  227. package/dist/utils/Condition/setupConditions.test.js +7 -7
  228. package/dist/utils/Container/getEditableComponents.js +5 -3
  229. package/dist/utils/Container/getEditableComponents.test.js +45 -43
  230. package/dist/utils/Container/index.js +1 -1
  231. package/dist/utils/Container/setupNesting.js +20 -16
  232. package/dist/utils/Container/setupNesting.test.js +30 -27
  233. package/dist/utils/Container/showContainer.js +7 -3
  234. package/dist/utils/Container/showContainer.test.js +30 -30
  235. package/dist/utils/Data/applyFormula.js +48 -38
  236. package/dist/utils/Data/applyFormula.test.js +20 -20
  237. package/dist/utils/Data/getAutocompleteSource.js +26 -18
  238. package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
  239. package/dist/utils/Data/getDataPath.js +28 -18
  240. package/dist/utils/Data/getDataPath.test.js +12 -12
  241. package/dist/utils/Data/getOptions.js +30 -24
  242. package/dist/utils/Data/getOptions.test.js +27 -27
  243. package/dist/utils/Data/getSourceData.js +19 -6
  244. package/dist/utils/Data/getSourceData.test.js +80 -84
  245. package/dist/utils/Data/index.js +1 -1
  246. package/dist/utils/Data/nestInRefdataOptions.js +16 -9
  247. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  248. package/dist/utils/Data/refDataToOptions.js +13 -10
  249. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  250. package/dist/utils/Data/setDataItem.js +8 -7
  251. package/dist/utils/Data/setDataItem.test.js +37 -37
  252. package/dist/utils/Data/setupFormData.js +21 -13
  253. package/dist/utils/Data/setupFormData.test.js +50 -51
  254. package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
  255. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  256. package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
  257. package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
  258. package/dist/utils/FormPage/getConditionalText.js +3 -3
  259. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  260. package/dist/utils/FormPage/getFormPage.js +16 -15
  261. package/dist/utils/FormPage/getFormPage.test.js +46 -47
  262. package/dist/utils/FormPage/getFormPages.js +12 -7
  263. package/dist/utils/FormPage/getFormPages.test.js +23 -20
  264. package/dist/utils/FormPage/getPageActions.js +15 -9
  265. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  266. package/dist/utils/FormPage/getParagraphFromText.js +7 -5
  267. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  268. package/dist/utils/FormPage/index.js +4 -2
  269. package/dist/utils/FormPage/showFormPage.js +7 -3
  270. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  271. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  272. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  273. package/dist/utils/FormPage/useComponent.js +28 -21
  274. package/dist/utils/FormPage/useComponent.test.js +79 -77
  275. package/dist/utils/Format/formatData.js +1 -1
  276. package/dist/utils/Format/formatData.test.js +18 -18
  277. package/dist/utils/Format/formatDataForComponent.js +6 -5
  278. package/dist/utils/Format/formatDataForComponent.test.js +78 -50
  279. package/dist/utils/Format/formatDataForForm.js +8 -6
  280. package/dist/utils/Format/formatDataForForm.test.js +16 -13
  281. package/dist/utils/Format/formatDataForPage.js +5 -4
  282. package/dist/utils/Format/formatDataForPage.test.js +25 -20
  283. package/dist/utils/Format/index.js +1 -1
  284. package/dist/utils/Hub/getFormHub.js +1 -1
  285. package/dist/utils/Hub/getFormHub.test.js +31 -28
  286. package/dist/utils/Hub/index.js +1 -1
  287. package/dist/utils/Meta/constants.js +2 -2
  288. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  289. package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
  290. package/dist/utils/Meta/documents/index.js +1 -1
  291. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
  292. package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
  293. package/dist/utils/Meta/index.js +1 -1
  294. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  295. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  296. package/dist/utils/Operate/getFirstOf.js +5 -5
  297. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  298. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  299. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
  300. package/dist/utils/Operate/getLength.js +50 -0
  301. package/dist/utils/Operate/getLength.test.js +89 -0
  302. package/dist/utils/Operate/index.js +1 -1
  303. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  304. package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
  305. package/dist/utils/Operate/runPageOperations.js +9 -7
  306. package/dist/utils/Operate/runPageOperations.test.js +36 -35
  307. package/dist/utils/Operate/setValueInFormData.js +2 -2
  308. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  309. package/dist/utils/Operate/shouldRun.js +6 -6
  310. package/dist/utils/Operate/shouldRun.test.js +27 -21
  311. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  312. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  313. package/dist/utils/Validate/additional/index.js +6 -6
  314. package/dist/utils/Validate/additional/index.test.js +12 -12
  315. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  316. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  317. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  318. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  319. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
  320. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
  321. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  322. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  323. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  325. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  326. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  327. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  328. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  329. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  330. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  331. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  332. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  333. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  334. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  335. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
  336. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
  337. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  338. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
  339. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  340. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  341. package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
  342. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  343. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  344. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
  345. package/dist/utils/Validate/additional/utils.js +22 -9
  346. package/dist/utils/Validate/index.js +1 -1
  347. package/dist/utils/Validate/validateCollection.js +25 -19
  348. package/dist/utils/Validate/validateCollection.test.js +66 -74
  349. package/dist/utils/Validate/validateComponent.js +21 -18
  350. package/dist/utils/Validate/validateComponent.test.js +176 -166
  351. package/dist/utils/Validate/validateContainer.js +20 -15
  352. package/dist/utils/Validate/validateContainer.test.js +52 -58
  353. package/dist/utils/Validate/validateDate.js +21 -15
  354. package/dist/utils/Validate/validateDate.test.js +32 -31
  355. package/dist/utils/Validate/validateEmail.js +8 -6
  356. package/dist/utils/Validate/validateEmail.test.js +25 -25
  357. package/dist/utils/Validate/validateMultifile.js +7 -5
  358. package/dist/utils/Validate/validateMultifile.test.js +18 -17
  359. package/dist/utils/Validate/validatePage.js +22 -19
  360. package/dist/utils/Validate/validatePage.test.js +203 -215
  361. package/dist/utils/Validate/validateRegex.js +5 -3
  362. package/dist/utils/Validate/validateRegex.test.js +14 -14
  363. package/dist/utils/Validate/validateRequired.js +6 -4
  364. package/dist/utils/Validate/validateRequired.test.js +18 -18
  365. package/dist/utils/Validate/validateTextArea.js +6 -4
  366. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  367. package/dist/utils/Validate/validateTime.js +26 -11
  368. package/dist/utils/Validate/validateTime.test.js +62 -16
  369. package/dist/utils/index.js +9 -7
  370. package/package.json +2 -2
  371. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
  372. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
@@ -3,83 +3,79 @@
3
3
  var _models = require("../../models");
4
4
  var _validateContainer = _interopRequireDefault(require("./validateContainer"));
5
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
- // Local imports
7
-
8
- describe('utils.Validate.Container', () => {
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 an empty array when the component is null', () => {
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 _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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ 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
10
+ describe('utils.Validate.Container', function () {
11
+ var setup = function setup(id, type, label, required, additionalValidation) {
12
+ return {
13
+ id: id,
14
+ fieldId: id,
15
+ type: type,
16
+ label: label,
17
+ required: required,
18
+ additionalValidation: additionalValidation
19
+ };
20
+ };
21
+ it('should return an empty array when the component is null', function () {
18
22
  expect((0, _validateContainer.default)(null, {})).toEqual([]);
19
23
  });
20
- it('should return an empty array when the container has an undefined components array', () => {
21
- const ID = 'container';
22
- const LABEL = 'field';
23
- const CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
24
+ it('should return an empty array when the container has an undefined components array', function () {
25
+ var ID = 'container';
26
+ var LABEL = 'field';
27
+ var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
24
28
  expect((0, _validateContainer.default)(CONTAINER, null)).toEqual([]);
25
29
  });
26
- it('should return an empty array when the container has no components', () => {
27
- const ID = 'container';
28
- const LABEL = 'field';
29
- const CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
30
+ it('should return an empty array when the container has no components', function () {
31
+ var ID = 'container';
32
+ var LABEL = 'field';
33
+ var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
30
34
  CONTAINER.components = [];
31
35
  expect((0, _validateContainer.default)(CONTAINER, null)).toEqual([]);
32
36
  });
33
- it('should return an empty array when the container has only valid components', () => {
34
- const EMAIL_ID = 'email';
35
- const EMAIL_LABEL = 'Email';
36
- const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
37
- const ID = 'container';
38
- const LABEL = 'field';
39
- const CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
37
+ it('should return an empty array when the container has only valid components', function () {
38
+ var EMAIL_ID = 'email';
39
+ var EMAIL_LABEL = 'Email';
40
+ var EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
41
+ var ID = 'container';
42
+ var LABEL = 'field';
43
+ var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
40
44
  CONTAINER.components = [EMAIL];
41
- const DATA = {
42
- [ID]: {
43
- [EMAIL_ID]: 'alpha.bravo@digital.homeoffice.gov.uk'
44
- }
45
- };
45
+ var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.gov.uk'));
46
46
  expect((0, _validateContainer.default)(CONTAINER, DATA)).toEqual([]);
47
47
  });
48
- it('should return an array containing an error when the container has an invalid component', () => {
49
- const EMAIL_ID = 'email';
50
- const EMAIL_LABEL = 'Email';
51
- const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
52
- const ID = 'container';
53
- const LABEL = 'field';
54
- const CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
48
+ it('should return an array containing an error when the container has an invalid component', function () {
49
+ var EMAIL_ID = 'email';
50
+ var EMAIL_LABEL = 'Email';
51
+ var EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
52
+ var ID = 'container';
53
+ var LABEL = 'field';
54
+ var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
55
55
  CONTAINER.components = [EMAIL];
56
- const DATA = {
57
- [ID]: {
58
- [EMAIL_ID]: 'alpha.bravo@digital.homeoffice.com'
59
- }
60
- };
56
+ var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.com'));
61
57
  expect((0, _validateContainer.default)(CONTAINER, DATA)).toEqual([{
62
58
  id: "".concat(ID, ".").concat(EMAIL_ID),
63
59
  error: "Enter ".concat(EMAIL_LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk")
64
60
  }]);
65
61
  });
66
- it('should apply optional validators when specified', () => {
67
- const ID = 'container';
68
- const DATA = {};
69
- const ADDITIONAL_VALIDATION = [{
62
+ it('should apply optional validators when specified', function () {
63
+ var ID = 'container';
64
+ var DATA = {};
65
+ var ADDITIONAL_VALIDATION = [{
70
66
  function: 'mustEnterAtLeastOne',
71
67
  message: 'Must enter at least one'
72
68
  }];
73
- const COMPONENT = setup(ID, _models.ComponentTypes.DATE, null, false, ADDITIONAL_VALIDATION);
69
+ var COMPONENT = setup(ID, _models.ComponentTypes.DATE, null, false, ADDITIONAL_VALIDATION);
74
70
  expect((0, _validateContainer.default)(COMPONENT, DATA)).toEqual({
75
71
  error: 'Must enter at least one',
76
72
  id: ID
77
73
  });
78
74
  });
79
- it('should return an array containing errors for nested components if the container has them as children', () => {
80
- const ID = 'container';
81
- const LABEL = 'field';
82
- const CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
75
+ it('should return an array containing errors for nested components if the container has them as children', function () {
76
+ var ID = 'container';
77
+ var LABEL = 'field';
78
+ var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
83
79
  CONTAINER.components = [{
84
80
  id: 'testRadio',
85
81
  fieldId: 'testRadio',
@@ -100,11 +96,9 @@ describe('utils.Validate.Container', () => {
100
96
  }]
101
97
  }
102
98
  }];
103
- const DATA = {
104
- [ID]: {
105
- testRadio: 'yes'
106
- }
107
- };
99
+ var DATA = _defineProperty({}, ID, {
100
+ testRadio: 'yes'
101
+ });
108
102
  expect((0, _validateContainer.default)(CONTAINER, DATA)).toEqual([{
109
103
  id: "".concat(ID, ".nestedText"),
110
104
  error: 'Nested text is required',
@@ -10,14 +10,17 @@ var _isToday = _interopRequireDefault(require("dayjs/plugin/isToday"));
10
10
  var _isLeapYear = _interopRequireDefault(require("dayjs/plugin/isLeapYear"));
11
11
  var _utils = require("./additional/utils");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- // Global imports
14
-
13
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports
15
19
  // Local imports
16
-
17
20
  _dayjs.default.extend(_customParseFormat.default);
18
21
  _dayjs.default.extend(_isToday.default);
19
22
  _dayjs.default.extend(_isLeapYear.default);
20
- const maxMonthDays = (month, year) => {
23
+ var maxMonthDays = exports.maxMonthDays = function maxMonthDays(month, year) {
21
24
  if (month === '02') {
22
25
  return (0, _dayjs.default)().year(year).isLeapYear() ? 29 : 28;
23
26
  }
@@ -26,7 +29,6 @@ const maxMonthDays = (month, year) => {
26
29
  }
27
30
  return 31;
28
31
  };
29
- exports.maxMonthDays = maxMonthDays;
30
32
  /**
31
33
  * Checks if a date passed is a valid date.
32
34
  * This will validate for 'leap years', missing components, invalid day, month or year components.
@@ -39,19 +41,23 @@ exports.maxMonthDays = maxMonthDays;
39
41
  * @returns an object with an error message and instructions for which parts of the date are in error
40
42
  * or undefined for both if the date is valid
41
43
  */
42
- const validateDate = date => {
44
+ var validateDate = function validateDate(date) {
43
45
  if (!date) {
44
46
  return {
45
47
  message: undefined,
46
48
  propsInError: undefined
47
49
  };
48
50
  }
49
- const formattedDate = (0, _utils.formatString)(date);
50
- const [day, month, year] = formattedDate.split('-');
51
- const intDay = parseInt(day, 10);
52
- const intMonth = parseInt(month, 10);
53
- const badProps = [];
54
- const messages = [];
51
+ var formattedDate = (0, _utils.formatString)(date);
52
+ var _formattedDate$split = formattedDate.split('-'),
53
+ _formattedDate$split2 = _slicedToArray(_formattedDate$split, 3),
54
+ day = _formattedDate$split2[0],
55
+ month = _formattedDate$split2[1],
56
+ year = _formattedDate$split2[2];
57
+ var intDay = parseInt(day, 10);
58
+ var intMonth = parseInt(month, 10);
59
+ var badProps = [];
60
+ var messages = [];
55
61
  if (year.length === 0) {
56
62
  badProps.push('year');
57
63
  messages.push('Date must include a year');
@@ -70,7 +76,7 @@ const validateDate = date => {
70
76
  badProps.push('day');
71
77
  messages.push('Date must include a day');
72
78
  } else {
73
- const maxDays = maxMonthDays(month, year);
79
+ var maxDays = maxMonthDays(month, year);
74
80
  if (intDay > maxDays || intDay < 1) {
75
81
  badProps.push('day');
76
82
  messages.push("Day must be between 1 and ".concat(maxDays));
@@ -78,7 +84,7 @@ const validateDate = date => {
78
84
  }
79
85
  if (badProps.length > 0) {
80
86
  // return single error or generic error if multiple problem
81
- const propsInError = {};
87
+ var propsInError = {};
82
88
  if (badProps.includes('day')) {
83
89
  propsInError.day = true;
84
90
  }
@@ -90,7 +96,7 @@ const validateDate = date => {
90
96
  }
91
97
  return {
92
98
  message: badProps.length === 1 ? messages[0] : 'Enter a valid date',
93
- propsInError
99
+ propsInError: propsInError
94
100
  };
95
101
  }
96
102
  if ((0, _dayjs.default)(formattedDate, _utils.DATE_FORMAT).format(_utils.DATE_FORMAT) !== formattedDate) {
@@ -1,33 +1,34 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
4
  var _validateDate = _interopRequireWildcard(require("./validateDate"));
4
- 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); }
5
- 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; }
6
- describe('utils', () => {
7
- describe('Validate', () => {
8
- describe('date', () => {
9
- test('should return no error when the value is an empty string', () => {
5
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
6
+ 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 && Object.prototype.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; }
7
+ describe('utils', function () {
8
+ describe('Validate', function () {
9
+ describe('date', function () {
10
+ test('should return no error when the value is an empty string', function () {
10
11
  expect((0, _validateDate.default)('', 'DD-MM-YYYY')).toEqual({
11
12
  message: undefined,
12
13
  propsInError: undefined
13
14
  });
14
15
  });
15
- test('should return undefined if a date string is valid', () => {
16
- const output = (0, _validateDate.default)('28-02-2024', 'DD-MM-YYYY');
16
+ test('should return undefined if a date string is valid', function () {
17
+ var output = (0, _validateDate.default)('28-02-2024', 'DD-MM-YYYY');
17
18
  expect(output).toEqual({
18
19
  message: undefined,
19
20
  propsInError: undefined
20
21
  });
21
22
  });
22
- test('should return undefined to a correct leap year date', () => {
23
- const output = (0, _validateDate.default)('29-02-2024', 'DD-MM-YYYY');
23
+ test('should return undefined to a correct leap year date', function () {
24
+ var output = (0, _validateDate.default)('29-02-2024', 'DD-MM-YYYY');
24
25
  expect(output).toEqual({
25
26
  message: undefined,
26
27
  propsInError: undefined
27
28
  });
28
29
  });
29
- test('should validate false if NOT a leap year & 29 Feb is entered', () => {
30
- const output = (0, _validateDate.default)('29-02-2023', 'DD-MM-YYYY');
30
+ test('should validate false if NOT a leap year & 29 Feb is entered', function () {
31
+ var output = (0, _validateDate.default)('29-02-2023', 'DD-MM-YYYY');
31
32
  expect(output).toEqual({
32
33
  message: 'Day must be between 1 and 28',
33
34
  propsInError: {
@@ -35,8 +36,8 @@ describe('utils', () => {
35
36
  }
36
37
  });
37
38
  });
38
- test('should return an error if no year is given', () => {
39
- const output = (0, _validateDate.default)('29-02-', 'DD-MM-YYYY');
39
+ test('should return an error if no year is given', function () {
40
+ var output = (0, _validateDate.default)('29-02-', 'DD-MM-YYYY');
40
41
  expect(output).toEqual({
41
42
  message: 'Date must include a year',
42
43
  propsInError: {
@@ -44,8 +45,8 @@ describe('utils', () => {
44
45
  }
45
46
  });
46
47
  });
47
- test('should return an error if the year contains less than 4 numbers', () => {
48
- const output = (0, _validateDate.default)('29-02-20', 'DD-MM-YYYY');
48
+ test('should return an error if the year contains less than 4 numbers', function () {
49
+ var output = (0, _validateDate.default)('29-02-20', 'DD-MM-YYYY');
49
50
  expect(output).toEqual({
50
51
  message: 'Year must be 4 numbers',
51
52
  propsInError: {
@@ -53,9 +54,9 @@ describe('utils', () => {
53
54
  }
54
55
  });
55
56
  });
56
- test('should return an error if the year contains more than 4 numbers', () => {
57
+ test('should return an error if the year contains more than 4 numbers', function () {
57
58
  // 20202 is not a leap year,so 29th Feb not valid
58
- const output = (0, _validateDate.default)('28-02-20202', 'DD-MM-YYYY');
59
+ var output = (0, _validateDate.default)('28-02-20202', 'DD-MM-YYYY');
59
60
  expect(output).toEqual({
60
61
  message: 'Year must be 4 numbers',
61
62
  propsInError: {
@@ -63,8 +64,8 @@ describe('utils', () => {
63
64
  }
64
65
  });
65
66
  });
66
- test('should return an error if no month is given', () => {
67
- const output = (0, _validateDate.default)('29--2020', 'DD-MM-YYYY');
67
+ test('should return an error if no month is given', function () {
68
+ var output = (0, _validateDate.default)('29--2020', 'DD-MM-YYYY');
68
69
  expect(output).toEqual({
69
70
  message: 'Date must include a month',
70
71
  propsInError: {
@@ -72,8 +73,8 @@ describe('utils', () => {
72
73
  }
73
74
  });
74
75
  });
75
- test('should return an error if the month is not between 1 and 12', () => {
76
- const output = (0, _validateDate.default)('29-14-2020', 'DD-MM-YYYY');
76
+ test('should return an error if the month is not between 1 and 12', function () {
77
+ var output = (0, _validateDate.default)('29-14-2020', 'DD-MM-YYYY');
77
78
  expect(output).toEqual({
78
79
  message: 'Month must be between 1 and 12',
79
80
  propsInError: {
@@ -81,8 +82,8 @@ describe('utils', () => {
81
82
  }
82
83
  });
83
84
  });
84
- test('should return an error if no day is given', () => {
85
- const output = (0, _validateDate.default)('-03-2020', 'DD-MM-YYYY');
85
+ test('should return an error if no day is given', function () {
86
+ var output = (0, _validateDate.default)('-03-2020', 'DD-MM-YYYY');
86
87
  expect(output).toEqual({
87
88
  message: 'Date must include a day',
88
89
  propsInError: {
@@ -90,8 +91,8 @@ describe('utils', () => {
90
91
  }
91
92
  });
92
93
  });
93
- test('should return an error if the day is not between 1 and 31', () => {
94
- const output = (0, _validateDate.default)('45-12-2020', 'DD-MM-YYYY');
94
+ test('should return an error if the day is not between 1 and 31', function () {
95
+ var output = (0, _validateDate.default)('45-12-2020', 'DD-MM-YYYY');
95
96
  expect(output).toEqual({
96
97
  message: 'Day must be between 1 and 31',
97
98
  propsInError: {
@@ -99,8 +100,8 @@ describe('utils', () => {
99
100
  }
100
101
  });
101
102
  });
102
- test('should handle multiple errors', () => {
103
- const output = (0, _validateDate.default)('45-13-2020', 'DD-MM-YYYY');
103
+ test('should handle multiple errors', function () {
104
+ var output = (0, _validateDate.default)('45-13-2020', 'DD-MM-YYYY');
104
105
  expect(output).toEqual({
105
106
  message: 'Enter a valid date',
106
107
  propsInError: {
@@ -108,7 +109,7 @@ describe('utils', () => {
108
109
  month: true
109
110
  }
110
111
  });
111
- const output2 = (0, _validateDate.default)('45-13-', 'DD-MM-YYYY');
112
+ var output2 = (0, _validateDate.default)('45-13-', 'DD-MM-YYYY');
112
113
  expect(output2).toEqual({
113
114
  message: 'Enter a valid date',
114
115
  propsInError: {
@@ -118,8 +119,8 @@ describe('utils', () => {
118
119
  }
119
120
  });
120
121
  });
121
- test('should correctly identify the maximum numbers of days in a given month and year', () => {
122
- let max = (0, _validateDate.maxMonthDays)('02', '2024');
122
+ test('should correctly identify the maximum numbers of days in a given month and year', function () {
123
+ var max = (0, _validateDate.maxMonthDays)('02', '2024');
123
124
  expect(max).toEqual(29);
124
125
  max = (0, _validateDate.maxMonthDays)('02', '2023');
125
126
  expect(max).toEqual(28);
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  // eslint-disable-next-line no-control-regex
8
8
  // const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i;
9
- const HODS_EMAIL_REGEX = /^[a-z0-9._\-']+@(digital\.)?homeoffice.gov.uk$/i;
9
+ var HODS_EMAIL_REGEX = /^[a-z0-9._\-']+@(digital\.)?homeoffice.gov.uk$/i;
10
10
 
11
11
  /**
12
12
  * Validates an email address, ensuring it is in the correct domain and
@@ -19,19 +19,21 @@ const HODS_EMAIL_REGEX = /^[a-z0-9._\-']+@(digital\.)?homeoffice.gov.uk$/i;
19
19
  * @param {array} customErrors The array of custom errors to use for format message.
20
20
  * @returns An error if the email address is invalid.
21
21
  */
22
- const validateEmail = function (value) {
23
- let label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
24
- let customErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
22
+ var validateEmail = function validateEmail(value) {
23
+ var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
24
+ var customErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
25
25
  // eslint-disable-next-line no-extra-boolean-cast
26
26
  if (!!value) {
27
- const name = label ? label.toLowerCase() : 'email address';
27
+ var name = label ? label.toLowerCase() : 'email address';
28
28
  if (typeof value === 'string') {
29
29
  if (HODS_EMAIL_REGEX.test(value)) {
30
30
  return undefined;
31
31
  }
32
32
  }
33
33
  if (Array.isArray(customErrors)) {
34
- const result = customErrors.filter(error => error.type === 'format');
34
+ var result = customErrors.filter(function (error) {
35
+ return error.type === 'format';
36
+ });
35
37
  if (result && result.length > 0 && result[0].message) {
36
38
  return result[0].message;
37
39
  }
@@ -4,66 +4,66 @@ var _validateEmail = _interopRequireDefault(require("./validateEmail"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
5
  // Local imports
6
6
 
7
- describe('utils', () => {
8
- describe('Validate', () => {
9
- describe('email', () => {
10
- const LABEL = 'Component';
11
- const ERROR = "Enter ".concat(LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk");
7
+ describe('utils', function () {
8
+ describe('Validate', function () {
9
+ describe('email', function () {
10
+ var LABEL = 'Component';
11
+ var ERROR = "Enter ".concat(LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk");
12
12
 
13
13
  // Valid values
14
- it('should return no error when the value is a valid .gov.uk address', () => {
14
+ it('should return no error when the value is a valid .gov.uk address', function () {
15
15
  expect((0, _validateEmail.default)('alpha@homeoffice.gov.uk', LABEL)).toBeUndefined();
16
16
  });
17
- it('should return no error when the value is a capitalised digital.homeoffice.gov.uk address', () => {
17
+ it('should return no error when the value is a capitalised digital.homeoffice.gov.uk address', function () {
18
18
  expect((0, _validateEmail.default)('ALPHA.BRAVO@DIGITAL.HOMEOFFICE.GOV.UK', LABEL)).toBeUndefined();
19
19
  });
20
- it('should return no error when the value is an empty string', () => {
20
+ it('should return no error when the value is an empty string', function () {
21
21
  expect((0, _validateEmail.default)('', LABEL)).toBeUndefined();
22
22
  });
23
23
 
24
24
  // Invalid values
25
- it('should return an error when the value is an empty object', () => {
25
+ it('should return an error when the value is an empty object', function () {
26
26
  expect((0, _validateEmail.default)({}, LABEL)).toEqual(ERROR);
27
27
  });
28
- it('should return an error when the value is an array', () => {
28
+ it('should return an error when the value is an array', function () {
29
29
  expect((0, _validateEmail.default)(['bob'], LABEL)).toEqual(ERROR);
30
30
  });
31
- it('should return an error when the value is numeric', () => {
31
+ it('should return an error when the value is numeric', function () {
32
32
  expect((0, _validateEmail.default)(24, LABEL)).toEqual(ERROR);
33
33
  });
34
- it('should return an error when the value is in the wrong domain', () => {
34
+ it('should return an error when the value is in the wrong domain', function () {
35
35
  expect((0, _validateEmail.default)('alpha@domain.com', LABEL)).toEqual(ERROR);
36
36
  });
37
- it('should return an error when the domain contains spaces', () => {
37
+ it('should return an error when the domain contains spaces', function () {
38
38
  expect((0, _validateEmail.default)('alpha.bravo@digital homeoffice.gov.uk', LABEL)).toEqual(ERROR);
39
39
  });
40
- it('should return an error when the value has no TLD', () => {
40
+ it('should return an error when the value has no TLD', function () {
41
41
  expect((0, _validateEmail.default)('alpha.bravo@homeoffice', LABEL)).toEqual(ERROR);
42
42
  });
43
- it('should return an error when there is no name', () => {
43
+ it('should return an error when there is no name', function () {
44
44
  expect((0, _validateEmail.default)('@homeoffice.gov.uk', LABEL)).toEqual(ERROR);
45
45
  });
46
- it('should return an error when there is no @ symbol', () => {
46
+ it('should return an error when there is no @ symbol', function () {
47
47
  expect((0, _validateEmail.default)('alpha.bravo.homeoffice.gov.uk', LABEL)).toEqual(ERROR);
48
48
  });
49
- it('should return an error when the name contains spaces', () => {
49
+ it('should return an error when the name contains spaces', function () {
50
50
  expect((0, _validateEmail.default)('alpha bravo@digital.homeoffice.gov.uk', LABEL)).toEqual(ERROR);
51
51
  });
52
- it('should use a default label when none is specified', () => {
53
- const DEFAULT_ERROR = 'Enter email address in the correct format, like jane.doe@homeoffice.gov.uk';
52
+ it('should use a default label when none is specified', function () {
53
+ var DEFAULT_ERROR = 'Enter email address in the correct format, like jane.doe@homeoffice.gov.uk';
54
54
  expect((0, _validateEmail.default)(['bob'], undefined)).toEqual(DEFAULT_ERROR);
55
55
  });
56
- it('should use a custom format error message when specified', () => {
57
- const customErrors = [{
56
+ it('should use a custom format error message when specified', function () {
57
+ var customErrors = [{
58
58
  'type': 'format',
59
59
  'message': 'Enter email address in the correct format'
60
60
  }];
61
- const CUSTOM_ERROR = 'Enter email address in the correct format';
61
+ var CUSTOM_ERROR = 'Enter email address in the correct format';
62
62
  expect((0, _validateEmail.default)('bob', '', customErrors)).toEqual(CUSTOM_ERROR);
63
63
  });
64
- it('should use the default format error message when custom errors is not an array', () => {
65
- const DEFAULT_ERROR = 'Enter email address in the correct format, like jane.doe@homeoffice.gov.uk';
66
- const customErrors = {
64
+ it('should use the default format error message when custom errors is not an array', function () {
65
+ var DEFAULT_ERROR = 'Enter email address in the correct format, like jane.doe@homeoffice.gov.uk';
66
+ var customErrors = {
67
67
  'type': 'format',
68
68
  'message': 'Enter email address in the correct format'
69
69
  };
@@ -4,19 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.DEFAULT_ERROR = void 0;
7
- const DEFAULT_ERROR = exports.DEFAULT_ERROR = 'Invalid files must be deleted';
8
- const validateMultifile = (value, customErrors) => {
7
+ var DEFAULT_ERROR = exports.DEFAULT_ERROR = 'Invalid files must be deleted';
8
+ var validateMultifile = function validateMultifile(value, customErrors) {
9
9
  if (!value) {
10
10
  return undefined;
11
11
  }
12
- let inError = false;
13
- value.every(entry => {
12
+ var inError = false;
13
+ value.every(function (entry) {
14
14
  inError = entry.error;
15
15
  return !inError;
16
16
  });
17
17
  if (inError) {
18
18
  if (Array.isArray(customErrors)) {
19
- const result = customErrors.filter(error => error.type === 'invalidFile');
19
+ var result = customErrors.filter(function (error) {
20
+ return error.type === 'invalidFile';
21
+ });
20
22
  if (result && result.length > 0 && result[0].message) {
21
23
  return result[0].message;
22
24
  }
@@ -1,42 +1,43 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
4
  var _validateMultifile = _interopRequireWildcard(require("./validateMultifile"));
4
- 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); }
5
- 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; }
5
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
6
+ 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 && Object.prototype.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; }
6
7
  // Local imports
7
8
 
8
- describe('utils', () => {
9
- describe('Validate', () => {
10
- describe('multifile', () => {
11
- const ERROR_MSG = 'This is a custom error message';
12
- const CUSTOM_ERRORS = [{
9
+ describe('utils', function () {
10
+ describe('Validate', function () {
11
+ describe('multifile', function () {
12
+ var ERROR_MSG = 'This is a custom error message';
13
+ var CUSTOM_ERRORS = [{
13
14
  type: 'invalidFile',
14
15
  message: ERROR_MSG
15
16
  }];
16
17
 
17
18
  // Valid values.
18
- it('should return no error when value is nullish', () => {
19
- const VALUE = null;
19
+ it('should return no error when value is nullish', function () {
20
+ var VALUE = null;
20
21
  expect((0, _validateMultifile.default)(VALUE, [])).toBeUndefined();
21
22
  });
22
- it('should return no error when value is an empty array', () => {
23
- const VALUE = [];
23
+ it('should return no error when value is an empty array', function () {
24
+ var VALUE = [];
24
25
  expect((0, _validateMultifile.default)(VALUE, [])).toBeUndefined();
25
26
  });
26
- it('should return no error when value only contains valid files', () => {
27
- const VALUE = [{}, {}];
27
+ it('should return no error when value only contains valid files', function () {
28
+ var VALUE = [{}, {}];
28
29
  expect((0, _validateMultifile.default)(VALUE, [])).toBeUndefined();
29
30
  });
30
31
 
31
32
  // Invalid values.
32
- it('should return an error when valid contains invalid files', () => {
33
- const VALUE = [{
33
+ it('should return an error when valid contains invalid files', function () {
34
+ var VALUE = [{
34
35
  error: 'This is an invalid file'
35
36
  }];
36
37
  expect((0, _validateMultifile.default)(VALUE, [])).toEqual(_validateMultifile.DEFAULT_ERROR);
37
38
  });
38
- it('should return a custom error when one is provided', () => {
39
- const VALUE = [{
39
+ it('should return a custom error when one is provided', function () {
40
+ var VALUE = [{
40
41
  error: 'This is an invalid file'
41
42
  }];
42
43
  expect((0, _validateMultifile.default)(VALUE, CUSTOM_ERRORS)).toEqual(ERROR_MSG);