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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.scss +2 -2
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
  6. package/dist/components/CollectionPage/CollectionPage.js +75 -59
  7. package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
  8. package/dist/components/CollectionSummary/BannerStrip.js +15 -14
  9. package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
  10. package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
  11. package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
  12. package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
  13. package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
  14. package/dist/components/CollectionSummary/Confirmation.js +14 -12
  15. package/dist/components/CollectionSummary/Confirmation.scss +1 -1
  16. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  17. package/dist/components/CollectionSummary/RenderListView.js +54 -56
  18. package/dist/components/CollectionSummary/RenderListView.scss +10 -1
  19. package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
  20. package/dist/components/CollectionSummary/SummaryCard.js +135 -145
  21. package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
  22. package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
  23. package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
  24. package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
  25. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
  26. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
  27. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
  28. package/dist/components/FormComponent/Collection.js +81 -108
  29. package/dist/components/FormComponent/Collection.test.js +909 -943
  30. package/dist/components/FormComponent/Container.js +40 -38
  31. package/dist/components/FormComponent/Container.test.js +314 -345
  32. package/dist/components/FormComponent/FormComponent.js +80 -71
  33. package/dist/components/FormComponent/FormComponent.test.js +353 -414
  34. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  35. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  36. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  37. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  38. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  39. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  40. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  41. package/dist/components/FormComponent/helpers/index.js +4 -4
  42. package/dist/components/FormPage/FormPage.js +65 -80
  43. package/dist/components/FormPage/FormPage.scss +1 -1
  44. package/dist/components/FormPage/FormPage.test.js +127 -163
  45. package/dist/components/FormRenderer/FormRenderer.js +150 -183
  46. package/dist/components/FormRenderer/FormRenderer.scss +1 -1
  47. package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
  48. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  49. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  50. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  51. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  52. package/dist/components/FormRenderer/handlers/index.js +1 -1
  53. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  54. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  55. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  56. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  57. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  58. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
  59. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
  60. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  61. package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
  62. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  63. package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
  64. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  65. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
  66. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  67. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  68. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  69. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  70. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  71. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  72. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
  73. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
  74. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
  75. package/dist/components/FormRenderer/helpers/index.js +2 -4
  76. package/dist/components/FormRenderer/onCYAAction.js +59 -51
  77. package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
  78. package/dist/components/FormRenderer/onPageAction.js +50 -48
  79. package/dist/components/FormRenderer/onPageAction.test.js +241 -217
  80. package/dist/components/FormRenderer/onTaskAction.js +9 -13
  81. package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
  82. package/dist/components/PageActions/ActionButton.js +12 -15
  83. package/dist/components/PageActions/ActionButton.test.js +56 -78
  84. package/dist/components/PageActions/PageActions.js +10 -10
  85. package/dist/components/PageActions/PageActions.test.js +86 -115
  86. package/dist/components/SummaryList/GroupAction.js +9 -17
  87. package/dist/components/SummaryList/GroupAction.test.js +37 -33
  88. package/dist/components/SummaryList/RowAction.js +11 -16
  89. package/dist/components/SummaryList/RowAction.test.js +37 -33
  90. package/dist/components/SummaryList/SummaryList.js +21 -26
  91. package/dist/components/SummaryList/SummaryList.scss +2 -2
  92. package/dist/components/SummaryList/SummaryList.test.js +143 -166
  93. package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
  94. package/dist/components/SummaryList/SummaryListRow.js +6 -4
  95. package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
  96. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  97. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  98. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  99. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  100. package/dist/components/SummaryList/helpers/index.js +1 -1
  101. package/dist/components/TaskList/Task.js +19 -29
  102. package/dist/components/TaskList/Task.test.js +83 -76
  103. package/dist/components/TaskList/TaskList.js +45 -71
  104. package/dist/components/TaskList/TaskList.scss +1 -1
  105. package/dist/components/TaskList/TaskList.test.js +113 -111
  106. package/dist/components/TaskList/TaskState.js +7 -5
  107. package/dist/components/TaskList/TaskState.test.js +52 -45
  108. package/dist/components/index.js +7 -7
  109. package/dist/context/HooksContext/HooksContext.js +57 -80
  110. package/dist/context/HooksContext/HooksContext.test.js +26 -35
  111. package/dist/context/HooksContext/index.js +3 -4
  112. package/dist/context/ValidationContext/ValidationContext.js +65 -72
  113. package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
  114. package/dist/context/ValidationContext/index.js +3 -4
  115. package/dist/context/index.js +2 -2
  116. package/dist/hooks/index.js +9 -10
  117. package/dist/hooks/useAxios.js +14 -40
  118. package/dist/hooks/useGetRequest.js +61 -97
  119. package/dist/hooks/useHooks.js +1 -3
  120. package/dist/hooks/useRefData.js +27 -40
  121. package/dist/hooks/useValidation.js +1 -3
  122. package/dist/index.js +13 -14
  123. package/dist/models/CollectionLabels.js +1 -1
  124. package/dist/models/ComponentTypes.js +25 -25
  125. package/dist/models/EventTypes.js +4 -4
  126. package/dist/models/FormPages.js +4 -4
  127. package/dist/models/FormTypes.js +8 -8
  128. package/dist/models/HubFormats.js +3 -3
  129. package/dist/models/PageAction.js +44 -38
  130. package/dist/models/TaskStates.js +29 -28
  131. package/dist/models/index.js +9 -9
  132. package/dist/setupTests.js +30 -31
  133. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  134. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
  135. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
  136. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
  137. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
  138. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
  139. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  140. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  141. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
  142. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
  143. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
  144. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
  147. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
  148. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
  149. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
  150. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
  151. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
  152. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
  153. package/dist/utils/CheckYourAnswers/index.js +1 -1
  154. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
  155. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
  156. package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
  157. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
  158. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  159. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
  160. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
  161. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
  162. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  163. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  164. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  165. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  166. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  167. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  168. package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
  169. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
  170. package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
  171. package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
  172. package/dist/utils/CollectionPage/index.js +3 -1
  173. package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
  174. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
  175. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
  176. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  177. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
  178. package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
  179. package/dist/utils/Component/addShowWhen.js +4 -8
  180. package/dist/utils/Component/addShowWhen.test.js +37 -37
  181. package/dist/utils/Component/applyToComponentTree.js +18 -18
  182. package/dist/utils/Component/applyToComponentTree.test.js +27 -32
  183. package/dist/utils/Component/cleanAttributes.js +10 -13
  184. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  185. package/dist/utils/Component/elevateNestedComponents.js +5 -5
  186. package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
  187. package/dist/utils/Component/getComponent.js +88 -94
  188. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
  190. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
  191. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
  192. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
  193. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
  194. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
  195. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
  196. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
  197. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
  198. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
  199. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
  200. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
  201. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
  202. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
  203. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
  204. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
  205. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
  206. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
  207. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
  208. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  209. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
  210. package/dist/utils/Component/getDefaultValue.js +6 -8
  211. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  212. package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
  213. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  214. package/dist/utils/Component/index.js +1 -1
  215. package/dist/utils/Component/isEditable.js +2 -4
  216. package/dist/utils/Component/isEditable.test.js +14 -15
  217. package/dist/utils/Component/optionIsSelected.js +1 -1
  218. package/dist/utils/Component/optionIsSelected.test.js +9 -9
  219. package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
  220. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  221. package/dist/utils/Component/showComponent.js +1 -1
  222. package/dist/utils/Component/showComponent.test.js +28 -28
  223. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  224. package/dist/utils/Condition/index.js +1 -1
  225. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  226. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  227. package/dist/utils/Condition/meetsCondition.js +28 -19
  228. package/dist/utils/Condition/meetsCondition.test.js +476 -376
  229. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  230. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  231. package/dist/utils/Condition/setupConditions.js +13 -18
  232. package/dist/utils/Condition/setupConditions.test.js +7 -7
  233. package/dist/utils/Container/getEditableComponents.js +3 -5
  234. package/dist/utils/Container/getEditableComponents.test.js +43 -45
  235. package/dist/utils/Container/index.js +1 -1
  236. package/dist/utils/Container/setupNesting.js +16 -20
  237. package/dist/utils/Container/setupNesting.test.js +27 -30
  238. package/dist/utils/Container/showContainer.js +3 -7
  239. package/dist/utils/Container/showContainer.test.js +30 -30
  240. package/dist/utils/Data/applyFormula.js +38 -48
  241. package/dist/utils/Data/applyFormula.test.js +20 -20
  242. package/dist/utils/Data/getAutocompleteSource.js +18 -26
  243. package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
  244. package/dist/utils/Data/getDataPath.js +18 -28
  245. package/dist/utils/Data/getDataPath.test.js +12 -12
  246. package/dist/utils/Data/getOptions.js +29 -25
  247. package/dist/utils/Data/getOptions.test.js +93 -20
  248. package/dist/utils/Data/getSourceData.js +6 -19
  249. package/dist/utils/Data/getSourceData.test.js +84 -80
  250. package/dist/utils/Data/index.js +1 -1
  251. package/dist/utils/Data/nestInRefdataOptions.js +42 -0
  252. package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
  253. package/dist/utils/Data/refDataToOptions.js +10 -13
  254. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  255. package/dist/utils/Data/setDataItem.js +7 -8
  256. package/dist/utils/Data/setDataItem.test.js +37 -37
  257. package/dist/utils/Data/setupFormData.js +13 -21
  258. package/dist/utils/Data/setupFormData.test.js +51 -50
  259. package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
  260. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  261. package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
  262. package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
  263. package/dist/utils/FormPage/getConditionalText.js +3 -3
  264. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  265. package/dist/utils/FormPage/getFormPage.js +15 -16
  266. package/dist/utils/FormPage/getFormPage.test.js +47 -46
  267. package/dist/utils/FormPage/getFormPages.js +7 -12
  268. package/dist/utils/FormPage/getFormPages.test.js +20 -23
  269. package/dist/utils/FormPage/getPageActions.js +9 -15
  270. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  271. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  272. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  273. package/dist/utils/FormPage/index.js +2 -4
  274. package/dist/utils/FormPage/showFormPage.js +3 -7
  275. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  276. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  277. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  278. package/dist/utils/FormPage/useComponent.js +21 -28
  279. package/dist/utils/FormPage/useComponent.test.js +77 -79
  280. package/dist/utils/Format/formatData.js +1 -1
  281. package/dist/utils/Format/formatData.test.js +18 -18
  282. package/dist/utils/Format/formatDataForComponent.js +5 -6
  283. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  284. package/dist/utils/Format/formatDataForForm.js +6 -8
  285. package/dist/utils/Format/formatDataForForm.test.js +13 -16
  286. package/dist/utils/Format/formatDataForPage.js +4 -5
  287. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  288. package/dist/utils/Format/index.js +1 -1
  289. package/dist/utils/Hub/getFormHub.js +1 -1
  290. package/dist/utils/Hub/getFormHub.test.js +28 -31
  291. package/dist/utils/Hub/index.js +1 -1
  292. package/dist/utils/Meta/constants.js +2 -2
  293. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  294. package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
  295. package/dist/utils/Meta/documents/index.js +1 -1
  296. package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
  297. package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
  298. package/dist/utils/Meta/index.js +1 -1
  299. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  300. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  301. package/dist/utils/Operate/getFirstOf.js +5 -5
  302. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  303. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  304. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
  305. package/dist/utils/Operate/index.js +1 -1
  306. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  307. package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
  308. package/dist/utils/Operate/runPageOperations.js +7 -7
  309. package/dist/utils/Operate/runPageOperations.test.js +35 -36
  310. package/dist/utils/Operate/setValueInFormData.js +2 -2
  311. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  312. package/dist/utils/Operate/shouldRun.js +6 -6
  313. package/dist/utils/Operate/shouldRun.test.js +21 -27
  314. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  315. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  316. package/dist/utils/Validate/additional/index.js +6 -6
  317. package/dist/utils/Validate/additional/index.test.js +12 -12
  318. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  319. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  320. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  321. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  322. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
  323. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
  324. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  325. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  326. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  327. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  328. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  329. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  330. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  331. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  332. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  333. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  334. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  335. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  336. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  337. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  338. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
  339. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
  340. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  341. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
  342. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  343. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  344. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  345. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  346. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  347. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
  348. package/dist/utils/Validate/additional/utils.js +9 -22
  349. package/dist/utils/Validate/index.js +1 -1
  350. package/dist/utils/Validate/validateCollection.js +19 -25
  351. package/dist/utils/Validate/validateCollection.test.js +74 -66
  352. package/dist/utils/Validate/validateComponent.js +17 -15
  353. package/dist/utils/Validate/validateComponent.test.js +167 -146
  354. package/dist/utils/Validate/validateContainer.js +16 -19
  355. package/dist/utils/Validate/validateContainer.test.js +84 -45
  356. package/dist/utils/Validate/validateDate.js +15 -21
  357. package/dist/utils/Validate/validateDate.test.js +31 -32
  358. package/dist/utils/Validate/validateEmail.js +6 -8
  359. package/dist/utils/Validate/validateEmail.test.js +25 -25
  360. package/dist/utils/Validate/validateMultifile.js +5 -7
  361. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  362. package/dist/utils/Validate/validatePage.js +24 -18
  363. package/dist/utils/Validate/validatePage.test.js +263 -182
  364. package/dist/utils/Validate/validateRegex.js +3 -5
  365. package/dist/utils/Validate/validateRegex.test.js +14 -14
  366. package/dist/utils/Validate/validateRequired.js +4 -6
  367. package/dist/utils/Validate/validateRequired.test.js +18 -18
  368. package/dist/utils/Validate/validateTextArea.js +4 -6
  369. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  370. package/dist/utils/Validate/validateTime.js +11 -18
  371. package/dist/utils/Validate/validateTime.test.js +16 -16
  372. package/dist/utils/index.js +7 -9
  373. package/package.json +5 -5
  374. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
  375. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
  376. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
  377. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
  378. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
  379. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
  380. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
  381. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
  382. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
  383. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
  384. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
  385. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
  386. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
  387. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
  388. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
  389. package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
  390. package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
@@ -17,46 +17,34 @@ var _models = require("../../models");
17
17
  var _setupTests = require("../../setupTests");
18
18
  var _utils = _interopRequireDefault(require("../../utils"));
19
19
  var _CheckYourAnswers = _interopRequireWildcard(require("./CheckYourAnswers"));
20
- 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); }
21
- 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; }
20
+ 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); }
21
+ 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; }
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
- 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); }
24
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
- 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."); }
26
- 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); }
27
- 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; }
28
- 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; } }
29
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
30
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
31
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
32
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
33
- 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; }
34
- 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; }
35
- 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; }
36
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
37
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Global imports
23
+ // Global imports
24
+
38
25
  // Local imports
39
- describe('components', function () {
40
- describe('CheckYourAnswers', function () {
41
- var mockAxios = new _axiosMockAdapter.default(_axios.default);
42
- var DATA = _utils.default.Data.setupForm(_userProfile.default.pages, _userProfile.default.components, _userProfileData.default);
43
- var PAGES = _utils.default.FormPage.getAll(_userProfile.default.pages, _userProfile.default.components, _objectSpread({}, DATA));
44
- var ON_ROW_ACTION_CALLS = [];
45
- var ON_ROW_ACTION = function ON_ROW_ACTION(row) {
26
+
27
+ describe('components', () => {
28
+ describe('CheckYourAnswers', () => {
29
+ const mockAxios = new _axiosMockAdapter.default(_axios.default);
30
+ const DATA = _utils.default.Data.setupForm(_userProfile.default.pages, _userProfile.default.components, _userProfileData.default);
31
+ const PAGES = _utils.default.FormPage.getAll(_userProfile.default.pages, _userProfile.default.components, {
32
+ ...DATA
33
+ });
34
+ const ON_ROW_ACTION_CALLS = [];
35
+ const ON_ROW_ACTION = row => {
46
36
  ON_ROW_ACTION_CALLS.push(row);
47
37
  };
48
- var ON_ACTION_CALLS = [];
49
- var ON_ACTION = function ON_ACTION(action, onError) {
38
+ const ON_ACTION_CALLS = [];
39
+ const ON_ACTION = (action, onError) => {
50
40
  ON_ACTION_CALLS.push({
51
- action: action,
52
- onError: onError
41
+ action,
42
+ onError
53
43
  });
54
44
  };
55
- var container = null;
56
- var refDataUrl = function refDataUrl(suffix) {
57
- return "".concat(_userProfileData.default.urls.refData, "/").concat(suffix);
58
- };
59
- beforeEach(function () {
45
+ let container = null;
46
+ const refDataUrl = suffix => "".concat(_userProfileData.default.urls.refData, "/").concat(suffix);
47
+ beforeEach(() => {
60
48
  ON_ROW_ACTION_CALLS.length = 0;
61
49
  ON_ACTION_CALLS.length = 0;
62
50
  container = document.createElement('div');
@@ -66,19 +54,19 @@ describe('components', function () {
66
54
  mockAxios.onGet(refDataUrl('grade')).reply(200, _grade.default);
67
55
  mockAxios.onGet(refDataUrl('team')).reply(200, _team.default);
68
56
  });
69
- afterEach(function () {
57
+ afterEach(() => {
70
58
  (0, _reactDom.unmountComponentAtNode)(container);
71
59
  container.remove();
72
60
  container = null;
73
61
  });
74
- var checkCYA = function checkCYA(cyaContainer) {
75
- var checkCYAContainer = cyaContainer;
76
- var cya = checkCYAContainer.childNodes[0];
62
+ const checkCYA = cyaContainer => {
63
+ const checkCYAContainer = cyaContainer;
64
+ const cya = checkCYAContainer.childNodes[0];
77
65
  expect(cya.tagName).toEqual('DIV');
78
66
  expect(cya.classList).toContain(_CheckYourAnswers.DEFAULT_CLASS);
79
67
  return cya;
80
68
  };
81
- var checkRow = function checkRow(row, key, value, action) {
69
+ const checkRow = (row, key, value, action) => {
82
70
  expect(row.textContent).toContain(key);
83
71
  expect(row.textContent).toContain(value);
84
72
  if (action) {
@@ -87,738 +75,444 @@ describe('components', function () {
87
75
  expect(row.textContent).not.toContain('Change');
88
76
  }
89
77
  };
90
- it('should show default title if none is provided', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
91
- var cya, title;
92
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
93
- while (1) switch (_context2.prev = _context2.next) {
94
- case 0:
95
- _context2.next = 2;
96
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
97
- return _regeneratorRuntime().wrap(function _callee$(_context) {
98
- while (1) switch (_context.prev = _context.next) {
99
- case 0:
100
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
101
- pages: PAGES,
102
- onRowAction: ON_ROW_ACTION,
103
- onAction: ON_ACTION
104
- }), container);
105
- case 1:
106
- case "end":
107
- return _context.stop();
108
- }
109
- }, _callee);
110
- })));
111
- case 2:
112
- cya = checkCYA(container);
113
- title = cya.childNodes[0];
114
- expect(title.classList).toContain('govuk-heading-l');
115
- expect(title.textContent).toEqual(_CheckYourAnswers.DEFAULT_TITLE);
116
- case 6:
117
- case "end":
118
- return _context2.stop();
119
- }
120
- }, _callee2);
121
- })));
122
- it('should allow title to be overridden', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
123
- var TITLE, cya, title;
124
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
125
- while (1) switch (_context4.prev = _context4.next) {
126
- case 0:
127
- TITLE = 'Alpha Bravo Charlie';
128
- _context4.next = 3;
129
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
130
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
131
- while (1) switch (_context3.prev = _context3.next) {
132
- case 0:
133
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
134
- title: TITLE,
135
- pages: PAGES,
136
- onRowAction: ON_ROW_ACTION,
137
- onAction: ON_ACTION
138
- }), container);
139
- case 1:
140
- case "end":
141
- return _context3.stop();
142
- }
143
- }, _callee3);
144
- })));
145
- case 3:
146
- cya = checkCYA(container);
147
- title = cya.childNodes[0];
148
- expect(title.classList).toContain('govuk-heading-l');
149
- expect(title.textContent).toEqual(TITLE);
150
- case 7:
151
- case "end":
152
- return _context4.stop();
153
- }
154
- }, _callee4);
155
- })));
156
- it('should show readonly page components correctly', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
157
- var cya, _cya$childNodes, cyaChildNode, names, _names$childNodes, firstName, surname;
158
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
159
- while (1) switch (_context6.prev = _context6.next) {
160
- case 0:
161
- _context6.next = 2;
162
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
163
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
164
- while (1) switch (_context5.prev = _context5.next) {
165
- case 0:
166
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
167
- pages: PAGES,
168
- onRowAction: ON_ROW_ACTION,
169
- onAction: ON_ACTION
170
- }), container);
171
- case 1:
172
- case "end":
173
- return _context5.stop();
174
- }
175
- }, _callee5);
176
- })));
177
- case 2:
178
- cya = checkCYA(container);
179
- _cya$childNodes = _slicedToArray(cya.childNodes, 2), cyaChildNode = _cya$childNodes[1];
180
- names = cyaChildNode.childNodes[0];
181
- expect(names.tagName).toEqual('DL');
182
- expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
183
- _names$childNodes = _slicedToArray(names.childNodes, 2), firstName = _names$childNodes[0], surname = _names$childNodes[1];
184
- checkRow(firstName, 'First name', 'John', false);
185
- checkRow(surname, 'Last name', 'Smith', false);
186
- case 10:
187
- case "end":
188
- return _context6.stop();
189
- }
190
- }, _callee6);
191
- })));
192
- it('should show editable page components correctly', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
193
- var cya, _cya$childNodes2, title, cyaChildNode, civilServant, _civilServant$childNo, status;
194
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
195
- while (1) switch (_context8.prev = _context8.next) {
196
- case 0:
197
- _context8.next = 2;
198
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
199
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
200
- while (1) switch (_context7.prev = _context7.next) {
201
- case 0:
202
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
203
- pages: PAGES,
204
- onRowAction: ON_ROW_ACTION,
205
- onAction: ON_ACTION
206
- }), container);
207
- case 1:
208
- case "end":
209
- return _context7.stop();
210
- }
211
- }, _callee7);
212
- })));
213
- case 2:
214
- cya = checkCYA(container);
215
- _cya$childNodes2 = _slicedToArray(cya.childNodes, 4), title = _cya$childNodes2[2], cyaChildNode = _cya$childNodes2[3];
216
- civilServant = cyaChildNode.childNodes[0];
217
- expect(title.textContent).toEqual('Are you a civil servant?');
218
- expect(civilServant.tagName).toEqual('DL');
219
- expect(civilServant.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
220
- _civilServant$childNo = _slicedToArray(civilServant.childNodes, 1), status = _civilServant$childNo[0];
221
- checkRow(status, 'Are you a civil servant?', 'Yes', true);
222
- case 10:
223
- case "end":
224
- return _context8.stop();
225
- }
226
- }, _callee8);
227
- })));
228
- it('should show editable page components correctly with page titles hidden', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
229
- var cya, _cya$childNodes3, cyaChildNode, civilServant, _civilServant$childNo2, status;
230
- return _regeneratorRuntime().wrap(function _callee10$(_context10) {
231
- while (1) switch (_context10.prev = _context10.next) {
232
- case 0:
233
- _context10.next = 2;
234
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
235
- return _regeneratorRuntime().wrap(function _callee9$(_context9) {
236
- while (1) switch (_context9.prev = _context9.next) {
237
- case 0:
238
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
239
- pages: PAGES,
240
- onRowAction: ON_ROW_ACTION,
241
- onAction: ON_ACTION,
242
- hide_page_titles: true
243
- }), container);
244
- case 1:
245
- case "end":
246
- return _context9.stop();
247
- }
248
- }, _callee9);
249
- })));
250
- case 2:
251
- cya = checkCYA(container);
252
- _cya$childNodes3 = _slicedToArray(cya.childNodes, 3), cyaChildNode = _cya$childNodes3[2]; // The title simply isn't returned
253
- civilServant = cyaChildNode.childNodes[0];
254
- expect(civilServant.tagName).toEqual('DL');
255
- expect(civilServant.classList).toContain("govuk-!-margin-bottom-0"); // Changed margin if no titles
256
- _civilServant$childNo2 = _slicedToArray(civilServant.childNodes, 1), status = _civilServant$childNo2[0];
257
- checkRow(status, 'Are you a civil servant?', 'Yes', true);
258
- case 9:
259
- case "end":
260
- return _context10.stop();
261
- }
262
- }, _callee10);
263
- })));
264
- it('should only show change link next to the heading when the page is configured to only have a single change link', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {
265
- var CUSTOM_PAGES, cya, _cya$childNodes4, title, cyaChildNode, titleText, titleAction, civilServant, _civilServant$childNo3, status;
266
- return _regeneratorRuntime().wrap(function _callee12$(_context12) {
267
- while (1) switch (_context12.prev = _context12.next) {
268
- case 0:
269
- CUSTOM_PAGES = PAGES.map(function (page) {
270
- return _objectSpread(_objectSpread({}, page), {}, {
271
- cya_link: {
272
- page: page.id,
273
- aria_suffix: 'page details',
274
- singleChangeLink: true
275
- }
276
- });
277
- });
278
- _context12.next = 3;
279
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {
280
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
281
- while (1) switch (_context11.prev = _context11.next) {
282
- case 0:
283
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
284
- pages: CUSTOM_PAGES,
285
- onRowAction: ON_ROW_ACTION,
286
- onAction: ON_ACTION
287
- }), container);
288
- case 1:
289
- case "end":
290
- return _context11.stop();
291
- }
292
- }, _callee11);
293
- })));
294
- case 3:
295
- cya = checkCYA(container);
296
- _cya$childNodes4 = _slicedToArray(cya.childNodes, 4), title = _cya$childNodes4[2], cyaChildNode = _cya$childNodes4[3];
297
- expect(title.tagName).toEqual('DIV');
298
- expect(title.classList).toContain('heading-with-action');
299
- titleText = title.children[0];
300
- expect(titleText.tagName).toEqual('DIV');
301
- expect(titleText.classList).toContain('heading-text');
302
- expect(titleText.textContent).toEqual('Are you a civil servant?');
303
- titleAction = title.children[1];
304
- expect(titleAction.tagName).toEqual('DIV');
305
- expect(titleAction.classList).toContain('heading-action');
306
- expect(titleAction.textContent).toEqual("Change page details");
307
- civilServant = cyaChildNode.childNodes[0];
308
- expect(civilServant.tagName).toEqual('DL');
309
- _civilServant$childNo3 = _slicedToArray(civilServant.childNodes, 1), status = _civilServant$childNo3[0];
310
- checkRow(status, 'Are you a civil servant?', 'Yes', false);
311
- case 19:
312
- case "end":
313
- return _context12.stop();
314
- }
315
- }, _callee12);
316
- })));
317
- it('should only show change link next to the heading when the page is configured to have a single change link and form is a task list', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
318
- var CUSTOM_PAGES, SECTIONS, taskHeading1, cya, _cya$childNodes5, title, cyaChildNode, titleText, titleAction, civilServant, _civilServant$childNo4, status;
319
- return _regeneratorRuntime().wrap(function _callee14$(_context14) {
320
- while (1) switch (_context14.prev = _context14.next) {
321
- case 0:
322
- CUSTOM_PAGES = PAGES.map(function (page) {
323
- return _objectSpread(_objectSpread({}, page), {}, {
324
- cya_link: {
325
- page: page.id,
326
- aria_suffix: 'page details',
327
- singleChangeLink: true
328
- }
329
- });
330
- });
331
- SECTIONS = [{
332
- name: 'These are your tasks',
333
- tasks: [{
334
- name: 'Task 1',
335
- state: 'complete',
336
- pages: ['civil-servant-status']
337
- }]
338
- }];
339
- _context14.next = 4;
340
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {
341
- return _regeneratorRuntime().wrap(function _callee13$(_context13) {
342
- while (1) switch (_context13.prev = _context13.next) {
343
- case 0:
344
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
345
- pages: CUSTOM_PAGES,
346
- onRowAction: ON_ROW_ACTION,
347
- onAction: ON_ACTION,
348
- hide_title: true,
349
- sections: SECTIONS,
350
- type: _models.FormTypes.TASK_CYA
351
- }), container);
352
- case 1:
353
- case "end":
354
- return _context13.stop();
355
- }
356
- }, _callee13);
357
- })));
358
- case 4:
359
- taskHeading1 = container.childNodes[0].childNodes[0];
360
- expect(taskHeading1.tagName).toEqual('H2');
361
- expect(taskHeading1.textContent).toEqual('Task 1');
362
- expect(taskHeading1.classList).toContain("govuk-heading-m");
363
- cya = checkCYA(container);
364
- _cya$childNodes5 = _slicedToArray(cya.childNodes, 3), title = _cya$childNodes5[1], cyaChildNode = _cya$childNodes5[2];
365
- expect(title.tagName).toEqual('DIV');
366
- expect(title.classList).toContain('heading-with-action');
367
- titleText = title.children[0];
368
- expect(titleText.tagName).toEqual('DIV');
369
- expect(titleText.classList).toContain('heading-text');
370
- expect(titleText.textContent).toEqual('Are you a civil servant?');
371
- titleAction = title.children[1];
372
- expect(titleAction.tagName).toEqual('DIV');
373
- expect(titleAction.classList).toContain('heading-action');
374
- expect(titleAction.textContent).toEqual("Change page details");
375
- civilServant = cyaChildNode.childNodes[0];
376
- expect(civilServant.tagName).toEqual('DL');
377
- _civilServant$childNo4 = _slicedToArray(civilServant.childNodes, 1), status = _civilServant$childNo4[0];
378
- checkRow(status, 'Are you a civil servant?', 'Yes', false);
379
- case 24:
380
- case "end":
381
- return _context14.stop();
382
- }
383
- }, _callee14);
384
- })));
385
- it('should show no title if is set to hidden', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {
386
- var cya, _cya$childNodes6, cyaChildNode, names, _names$childNodes2, firstName, surname;
387
- return _regeneratorRuntime().wrap(function _callee16$(_context16) {
388
- while (1) switch (_context16.prev = _context16.next) {
389
- case 0:
390
- _context16.next = 2;
391
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {
392
- return _regeneratorRuntime().wrap(function _callee15$(_context15) {
393
- while (1) switch (_context15.prev = _context15.next) {
394
- case 0:
395
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
396
- pages: PAGES,
397
- onRowAction: ON_ROW_ACTION,
398
- onAction: ON_ACTION,
399
- hide_title: true
400
- }), container);
401
- case 1:
402
- case "end":
403
- return _context15.stop();
404
- }
405
- }, _callee15);
406
- })));
407
- case 2:
408
- cya = checkCYA(container);
409
- _cya$childNodes6 = _slicedToArray(cya.childNodes, 1), cyaChildNode = _cya$childNodes6[0];
410
- names = cyaChildNode.childNodes[0];
411
- expect(names.tagName).toEqual('DL');
412
- expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
413
- _names$childNodes2 = _slicedToArray(names.childNodes, 2), firstName = _names$childNodes2[0], surname = _names$childNodes2[1];
414
- checkRow(firstName, 'First name', 'John', false);
415
- checkRow(surname, 'Last name', 'Smith', false);
416
- case 10:
417
- case "end":
418
- return _context16.stop();
419
- }
420
- }, _callee16);
421
- })));
422
- it('should show task list in CYA style', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {
423
- var sections, taskHeading1, namesPageHeading, taskHeading2, gradePageHeading;
424
- return _regeneratorRuntime().wrap(function _callee18$(_context18) {
425
- while (1) switch (_context18.prev = _context18.next) {
426
- case 0:
427
- sections = [{
428
- name: 'These are your tasks',
429
- tasks: [{
430
- name: 'Task 1',
431
- state: 'complete',
432
- pages: ['names']
433
- }, {
434
- name: 'Task 2',
435
- state: 'complete',
436
- pages: ['grade']
437
- }]
438
- }];
439
- _context18.next = 3;
440
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {
441
- return _regeneratorRuntime().wrap(function _callee17$(_context17) {
442
- while (1) switch (_context17.prev = _context17.next) {
443
- case 0:
444
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
445
- pages: PAGES,
446
- onRowAction: ON_ROW_ACTION,
447
- onAction: ON_ACTION,
448
- hide_title: true,
449
- sections: sections,
450
- type: "task-list-cya"
451
- }), container);
452
- case 1:
453
- case "end":
454
- return _context17.stop();
455
- }
456
- }, _callee17);
457
- })));
458
- case 3:
459
- taskHeading1 = container.childNodes[0].childNodes[0];
460
- expect(taskHeading1.tagName).toEqual('H2');
461
- expect(taskHeading1.textContent).toEqual('Task 1');
462
- expect(taskHeading1.classList).toContain("govuk-heading-m");
463
- namesPageHeading = container.childNodes[0].childNodes[1];
464
- expect(namesPageHeading.tagName).toEqual('DIV');
465
- expect(namesPageHeading.textContent).toContain('John');
466
- expect(namesPageHeading.classList).toContain("group-of-rows");
467
- taskHeading2 = container.childNodes[0].childNodes[2];
468
- expect(taskHeading2.tagName).toEqual('H2');
469
- expect(taskHeading2.textContent).toEqual('Task 2');
470
- expect(taskHeading2.classList).toContain("govuk-heading-m");
471
- gradePageHeading = container.childNodes[0].childNodes[3];
472
- expect(gradePageHeading.tagName).toEqual('H3');
473
- expect(gradePageHeading.textContent).toEqual("What's your grade?");
474
- expect(gradePageHeading.classList).toContain("govuk-heading-s");
475
- case 19:
476
- case "end":
477
- return _context18.stop();
478
- }
479
- }, _callee18);
480
- })));
481
- it('should show task list in CYA style and priotitise displayName over name for a task', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {
482
- var sections, taskHeading1, taskHeading2;
483
- return _regeneratorRuntime().wrap(function _callee20$(_context20) {
484
- while (1) switch (_context20.prev = _context20.next) {
485
- case 0:
486
- sections = [{
487
- name: 'These are your tasks',
488
- tasks: [{
489
- name: 'Task 1',
490
- displayName: 'Blue',
491
- state: 'complete',
492
- pages: ['names']
493
- }, {
494
- name: 'Task 2',
495
- displayName: 'Red',
496
- state: 'complete',
497
- pages: ['grade']
498
- }]
499
- }];
500
- _context20.next = 3;
501
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {
502
- return _regeneratorRuntime().wrap(function _callee19$(_context19) {
503
- while (1) switch (_context19.prev = _context19.next) {
504
- case 0:
505
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
506
- pages: PAGES,
507
- onRowAction: ON_ROW_ACTION,
508
- onAction: ON_ACTION,
509
- hide_title: true,
510
- sections: sections,
511
- type: "task-list-cya"
512
- }), container);
513
- case 1:
514
- case "end":
515
- return _context19.stop();
516
- }
517
- }, _callee19);
518
- })));
519
- case 3:
520
- taskHeading1 = container.childNodes[0].childNodes[0];
521
- expect(taskHeading1.textContent).toEqual('Blue');
522
- taskHeading2 = container.childNodes[0].childNodes[2];
523
- expect(taskHeading2.textContent).toEqual('Red');
524
- case 7:
525
- case "end":
526
- return _context20.stop();
527
- }
528
- }, _callee20);
529
- })));
530
- it('Show answers from multiple address fields into in one DL', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {
531
- var ADDRESS_DATA, GROUP_PAGES, cya, groupedComponent, keyGroup, valueGroup, changeButtonDiv, changeButton;
532
- return _regeneratorRuntime().wrap(function _callee22$(_context22) {
533
- while (1) switch (_context22.prev = _context22.next) {
534
- case 0:
535
- ADDRESS_DATA = _utils.default.Data.setupForm(_group.default.pages, _group.default.components, _groupData.default);
536
- GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, _objectSpread({}, ADDRESS_DATA));
537
- _context22.next = 4;
538
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {
539
- return _regeneratorRuntime().wrap(function _callee21$(_context21) {
540
- while (1) switch (_context21.prev = _context21.next) {
541
- case 0:
542
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
543
- pages: GROUP_PAGES,
544
- onRowAction: ON_ROW_ACTION,
545
- onAction: ON_ACTION,
546
- hide_title: true
547
- }), container);
548
- case 1:
549
- case "end":
550
- return _context21.stop();
551
- }
552
- }, _callee21);
553
- })));
554
- case 4:
555
- cya = checkCYA(container);
556
- groupedComponent = cya.childNodes[10];
557
- keyGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[0];
558
- expect(keyGroup.tagName).toEqual('DT');
559
- expect(keyGroup.textContent).toEqual('Address details');
560
- valueGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[1];
561
- expect(valueGroup.childNodes.length).toEqual(4);
562
- expect(valueGroup.tagName).toEqual('DD');
563
- expect(valueGroup.childNodes[0].textContent).toContain('10 Downing Street');
564
- expect(valueGroup.childNodes[1].textContent).toContain('City of Westminster');
565
- expect(valueGroup.childNodes[2].textContent).toContain('London');
566
- expect(valueGroup.childNodes[3].textContent).toContain('SW1A 2AA');
567
- changeButtonDiv = groupedComponent.childNodes[0].childNodes[0].childNodes[2];
568
- expect(changeButtonDiv.classList).toContain('govuk-summary-list__actions');
569
- changeButton = changeButtonDiv.childNodes[0];
570
- expect(changeButton.tagName).toEqual('A');
571
- expect(changeButton.textContent).toEqual('Change address details');
572
- case 21:
573
- case "end":
574
- return _context22.stop();
575
- }
576
- }, _callee22);
577
- })));
578
- it('should render a group with one action button', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {
579
- var GROUP_PAGES, cya, namesGroup, firstNameRow, surname, changeButtonDiv, changeButton;
580
- return _regeneratorRuntime().wrap(function _callee24$(_context24) {
581
- while (1) switch (_context24.prev = _context24.next) {
582
- case 0:
583
- GROUP_PAGES = _utils.default.FormPage.getAll(_groupOfRow.default.pages, _groupOfRow.default.components, _objectSpread({}, DATA));
584
- _context24.next = 3;
585
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {
586
- return _regeneratorRuntime().wrap(function _callee23$(_context23) {
587
- while (1) switch (_context23.prev = _context23.next) {
588
- case 0:
589
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
590
- pages: GROUP_PAGES,
591
- onRowAction: ON_ROW_ACTION,
592
- onAction: ON_ACTION,
593
- groups: _groupOfRow.default.cya.groups
594
- }), container);
595
- case 1:
596
- case "end":
597
- return _context23.stop();
598
- }
599
- }, _callee23);
600
- })));
601
- case 3:
602
- cya = checkCYA(container);
603
- namesGroup = cya.childNodes[2];
604
- firstNameRow = namesGroup.childNodes[0].childNodes[0];
605
- expect(firstNameRow.childNodes.length).toEqual(2);
606
- expect(firstNameRow.childNodes[0].textContent).toEqual('First name (optional)');
607
- expect(firstNameRow.childNodes[0].tagName).toEqual('DT');
608
- expect(firstNameRow.childNodes[1].textContent).toEqual('John');
609
- expect(firstNameRow.childNodes[1].tagName).toEqual('DD');
610
- surname = namesGroup.childNodes[0].childNodes[1];
611
- expect(surname.childNodes.length).toEqual(2);
612
- expect(surname.childNodes[0].textContent).toEqual('Last name (optional)');
613
- expect(surname.childNodes[0].tagName).toEqual('DT');
614
- expect(surname.childNodes[1].textContent).toEqual('Smith');
615
- expect(surname.childNodes[1].tagName).toEqual('DD');
616
- changeButtonDiv = namesGroup.childNodes[0].childNodes[2];
617
- expect(changeButtonDiv.classList).toContain('change-group-button');
618
- changeButton = changeButtonDiv.childNodes[0];
619
- expect(changeButton.tagName).toEqual('A');
620
- expect(changeButton.textContent).toEqual('Change names');
621
- case 22:
622
- case "end":
623
- return _context24.stop();
624
- }
625
- }, _callee24);
626
- })));
627
- it('should show page components corrently with interpolated title and cya_label, if label is missing', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {
628
- var _PAGES, _COMPONENTS, T_PAGES, cya, _cya$childNodes7, cyaTitle, cyaChildNode, names, _names$childNodes3, firstName, surname, _firstName$childNodes, label;
629
- return _regeneratorRuntime().wrap(function _callee26$(_context26) {
630
- while (1) switch (_context26.prev = _context26.next) {
631
- case 0:
632
- _PAGES = [].concat(_userProfile.default.pages); // eslint-disable-next-line no-template-curly-in-string
633
- _PAGES[0] = _objectSpread(_objectSpread({}, _PAGES[0]), {}, {
634
- title: 'Alpha ID: ${businessKey}'
635
- });
636
- _COMPONENTS = [].concat(_userProfile.default.components);
637
- _COMPONENTS[0] = _objectSpread(_objectSpread({}, _COMPONENTS[0]), {}, {
638
- label: undefined,
639
- required: true,
640
- // eslint-disable-next-line no-template-curly-in-string
641
- cya_label: "Text ${currentUser.familyName}"
642
- });
643
- T_PAGES = _utils.default.FormPage.getAll(_PAGES, _COMPONENTS, DATA);
644
- _context26.next = 7;
645
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {
646
- return _regeneratorRuntime().wrap(function _callee25$(_context25) {
647
- while (1) switch (_context25.prev = _context25.next) {
648
- case 0:
649
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
650
- pages: T_PAGES,
651
- onRowAction: ON_ROW_ACTION,
652
- onAction: ON_ACTION
653
- }), container);
654
- case 1:
655
- case "end":
656
- return _context25.stop();
657
- }
658
- }, _callee25);
659
- })));
660
- case 7:
661
- cya = checkCYA(container);
662
- _cya$childNodes7 = _slicedToArray(cya.childNodes, 3), cyaTitle = _cya$childNodes7[1], cyaChildNode = _cya$childNodes7[2];
663
- expect(cyaTitle.textContent).toEqual('Alpha ID: 123456789');
664
- names = cyaChildNode.childNodes[0];
665
- expect(names.tagName).toEqual('DL');
666
- expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
667
- _names$childNodes3 = _slicedToArray(names.childNodes, 2), firstName = _names$childNodes3[0], surname = _names$childNodes3[1];
668
- _firstName$childNodes = _slicedToArray(firstName.childNodes, 1), label = _firstName$childNodes[0];
669
- expect(label.textContent).toEqual('Text Smith');
670
- checkRow(surname, 'Last name', 'Smith', false);
671
- case 17:
672
- case "end":
673
- return _context26.stop();
674
- }
675
- }, _callee26);
676
- })));
677
- it('should show page components corrently with no label, if label and cya_label are missing', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {
678
- var _PAGES, _COMPONENTS, T_PAGES, cya, _cya$childNodes8, cyaChildNode, names, _names$childNodes4, firstName, surname, _firstName$childNodes2, label;
679
- return _regeneratorRuntime().wrap(function _callee28$(_context28) {
680
- while (1) switch (_context28.prev = _context28.next) {
681
- case 0:
682
- _PAGES = [].concat(_userProfile.default.pages);
683
- _COMPONENTS = [].concat(_userProfile.default.components);
684
- _COMPONENTS[0] = _objectSpread(_objectSpread({}, _COMPONENTS[0]), {}, {
685
- label: undefined,
686
- required: true,
687
- cya_label: undefined
688
- });
689
- T_PAGES = _utils.default.FormPage.getAll(_PAGES, _COMPONENTS, _objectSpread({}, DATA));
690
- _context28.next = 6;
691
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {
692
- return _regeneratorRuntime().wrap(function _callee27$(_context27) {
693
- while (1) switch (_context27.prev = _context27.next) {
694
- case 0:
695
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
696
- pages: T_PAGES,
697
- onRowAction: ON_ROW_ACTION,
698
- onAction: ON_ACTION
699
- }), container);
700
- case 1:
701
- case "end":
702
- return _context27.stop();
703
- }
704
- }, _callee27);
705
- })));
706
- case 6:
707
- cya = checkCYA(container);
708
- _cya$childNodes8 = _slicedToArray(cya.childNodes, 2), cyaChildNode = _cya$childNodes8[1];
709
- names = cyaChildNode.childNodes[0];
710
- expect(names.tagName).toEqual('DL');
711
- expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
712
- _names$childNodes4 = _slicedToArray(names.childNodes, 2), firstName = _names$childNodes4[0], surname = _names$childNodes4[1];
713
- _firstName$childNodes2 = _slicedToArray(firstName.childNodes, 1), label = _firstName$childNodes2[0];
714
- expect(label.textContent).toEqual("");
715
- checkRow(surname, 'Last name', 'Smith', false);
716
- case 15:
717
- case "end":
718
- return _context28.stop();
719
- }
720
- }, _callee28);
721
- })));
722
- it('should show task list in CYA style and hide pages from skipped tasks', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {
723
- var sections, taskHeading1, namesPageHeading;
724
- return _regeneratorRuntime().wrap(function _callee30$(_context30) {
725
- while (1) switch (_context30.prev = _context30.next) {
726
- case 0:
727
- sections = [{
728
- name: 'These are your tasks',
729
- tasks: [{
730
- name: 'Task 1',
731
- state: 'complete',
732
- pages: ['names']
733
- }, {
734
- name: 'Task 2',
735
- state: 'skipped',
736
- pages: ['grade']
737
- }]
738
- }];
739
- _context30.next = 3;
740
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {
741
- return _regeneratorRuntime().wrap(function _callee29$(_context29) {
742
- while (1) switch (_context29.prev = _context29.next) {
743
- case 0:
744
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
745
- pages: PAGES,
746
- onRowAction: ON_ROW_ACTION,
747
- onAction: ON_ACTION,
748
- hide_title: true,
749
- sections: sections,
750
- type: "task-list-cya"
751
- }), container);
752
- case 1:
753
- case "end":
754
- return _context29.stop();
755
- }
756
- }, _callee29);
757
- })));
758
- case 3:
759
- taskHeading1 = container.childNodes[0].childNodes[0];
760
- expect(taskHeading1.tagName).toEqual('H2');
761
- expect(taskHeading1.textContent).toEqual('Task 1');
762
- expect(taskHeading1.classList).toContain("govuk-heading-m");
763
- namesPageHeading = container.childNodes[0].childNodes[1];
764
- expect(namesPageHeading.tagName).toEqual('DIV');
765
- expect(namesPageHeading.textContent).toContain('John');
766
- expect(namesPageHeading.classList).toContain("group-of-rows");
767
- expect(container.childNodes[0].childNodes.length).toEqual(2); // second task skipped so not shown
768
- case 12:
769
- case "end":
770
- return _context30.stop();
78
+ it('should show default title if none is provided', async () => {
79
+ await (0, _testUtils.act)(async () => {
80
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
81
+ pages: PAGES,
82
+ onRowAction: ON_ROW_ACTION,
83
+ onAction: ON_ACTION
84
+ }), container);
85
+ });
86
+ const cya = checkCYA(container);
87
+ const title = cya.childNodes[0];
88
+ expect(title.classList).toContain('govuk-heading-l');
89
+ expect(title.textContent).toEqual(_CheckYourAnswers.DEFAULT_TITLE);
90
+ });
91
+ it('should allow title to be overridden', async () => {
92
+ const TITLE = 'Alpha Bravo Charlie';
93
+ await (0, _testUtils.act)(async () => {
94
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
95
+ title: TITLE,
96
+ pages: PAGES,
97
+ onRowAction: ON_ROW_ACTION,
98
+ onAction: ON_ACTION
99
+ }), container);
100
+ });
101
+ const cya = checkCYA(container);
102
+ const title = cya.childNodes[0];
103
+ expect(title.classList).toContain('govuk-heading-l');
104
+ expect(title.textContent).toEqual(TITLE);
105
+ });
106
+ it('should show readonly page components correctly', async () => {
107
+ await (0, _testUtils.act)(async () => {
108
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
109
+ pages: PAGES,
110
+ onRowAction: ON_ROW_ACTION,
111
+ onAction: ON_ACTION
112
+ }), container);
113
+ });
114
+ const cya = checkCYA(container);
115
+ const [, cyaChildNode] = cya.childNodes;
116
+ const names = cyaChildNode.childNodes[0];
117
+ expect(names.tagName).toEqual('DL');
118
+ expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
119
+ const [firstName, surname] = names.childNodes;
120
+ checkRow(firstName, 'First name', 'John', false);
121
+ checkRow(surname, 'Last name', 'Smith', false);
122
+ });
123
+ it('should show editable page components correctly', async () => {
124
+ await (0, _testUtils.act)(async () => {
125
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
126
+ pages: PAGES,
127
+ onRowAction: ON_ROW_ACTION,
128
+ onAction: ON_ACTION
129
+ }), container);
130
+ });
131
+ const cya = checkCYA(container);
132
+ const [,, title, cyaChildNode] = cya.childNodes;
133
+ const civilServant = cyaChildNode.childNodes[0];
134
+ expect(title.textContent).toEqual('Are you a civil servant?');
135
+ expect(civilServant.tagName).toEqual('DL');
136
+ expect(civilServant.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
137
+ const [status] = civilServant.childNodes;
138
+ checkRow(status, 'Are you a civil servant?', 'Yes', true);
139
+ });
140
+ it('should show editable page components correctly with page titles hidden', async () => {
141
+ await (0, _testUtils.act)(async () => {
142
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
143
+ pages: PAGES,
144
+ onRowAction: ON_ROW_ACTION,
145
+ onAction: ON_ACTION,
146
+ hide_page_titles: true
147
+ }), container);
148
+ });
149
+ const cya = checkCYA(container);
150
+ const [,, cyaChildNode] = cya.childNodes; // The title simply isn't returned
151
+ const civilServant = cyaChildNode.childNodes[0];
152
+ expect(civilServant.tagName).toEqual('DL');
153
+ expect(civilServant.classList).toContain("govuk-!-margin-bottom-0"); // Changed margin if no titles
154
+ const [status] = civilServant.childNodes;
155
+ checkRow(status, 'Are you a civil servant?', 'Yes', true);
156
+ });
157
+ it('should only show change link next to the heading when the page is configured to only have a single change link', async () => {
158
+ const CUSTOM_PAGES = PAGES.map(page => ({
159
+ ...page,
160
+ cya_link: {
161
+ page: page.id,
162
+ aria_suffix: 'page details',
163
+ singleChangeLink: true
771
164
  }
772
- }, _callee30);
773
- })));
774
- it('Show answers from multiple address fields into in one DL correctly when hideBlankRows is true', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {
775
- var ADDRESS_DATA, GROUP_PAGES, cya, groupedComponent, keyGroup, valueGroup, changeButtonDiv, changeButton;
776
- return _regeneratorRuntime().wrap(function _callee32$(_context32) {
777
- while (1) switch (_context32.prev = _context32.next) {
778
- case 0:
779
- ADDRESS_DATA = _utils.default.Data.setupForm(_group.default.pages, _group.default.components, _groupData.default);
780
- GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, _objectSpread({}, ADDRESS_DATA));
781
- _context32.next = 4;
782
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {
783
- return _regeneratorRuntime().wrap(function _callee31$(_context31) {
784
- while (1) switch (_context31.prev = _context31.next) {
785
- case 0:
786
- (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
787
- pages: GROUP_PAGES,
788
- onRowAction: ON_ROW_ACTION,
789
- onAction: ON_ACTION,
790
- hide_title: true,
791
- hideBlankRows: true
792
- }), container);
793
- case 1:
794
- case "end":
795
- return _context31.stop();
796
- }
797
- }, _callee31);
798
- })));
799
- case 4:
800
- cya = checkCYA(container);
801
- groupedComponent = cya.childNodes[6];
802
- keyGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[0];
803
- expect(keyGroup.tagName).toEqual('DT');
804
- expect(keyGroup.textContent).toEqual('Address details');
805
- valueGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[1];
806
- expect(valueGroup.childNodes.length).toEqual(4);
807
- expect(valueGroup.tagName).toEqual('DD');
808
- expect(valueGroup.childNodes[0].textContent).toContain('10 Downing Street');
809
- expect(valueGroup.childNodes[1].textContent).toContain('City of Westminster');
810
- expect(valueGroup.childNodes[2].textContent).toContain('London');
811
- expect(valueGroup.childNodes[3].textContent).toContain('SW1A 2AA');
812
- changeButtonDiv = groupedComponent.childNodes[0].childNodes[0].childNodes[2];
813
- expect(changeButtonDiv.classList).toContain('govuk-summary-list__actions');
814
- changeButton = changeButtonDiv.childNodes[0];
815
- expect(changeButton.tagName).toEqual('A');
816
- expect(changeButton.textContent).toEqual('Change address details');
817
- case 21:
818
- case "end":
819
- return _context32.stop();
165
+ }));
166
+ await (0, _testUtils.act)(async () => {
167
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
168
+ pages: CUSTOM_PAGES,
169
+ onRowAction: ON_ROW_ACTION,
170
+ onAction: ON_ACTION
171
+ }), container);
172
+ });
173
+ const cya = checkCYA(container);
174
+ const [,, title, cyaChildNode] = cya.childNodes;
175
+ expect(title.tagName).toEqual('DIV');
176
+ expect(title.classList).toContain('heading-with-action');
177
+ const titleText = title.children[0];
178
+ expect(titleText.tagName).toEqual('DIV');
179
+ expect(titleText.classList).toContain('heading-text');
180
+ expect(titleText.textContent).toEqual('Are you a civil servant?');
181
+ const titleAction = title.children[1];
182
+ expect(titleAction.tagName).toEqual('DIV');
183
+ expect(titleAction.classList).toContain('heading-action');
184
+ expect(titleAction.textContent).toEqual("Change page details");
185
+ const civilServant = cyaChildNode.childNodes[0];
186
+ expect(civilServant.tagName).toEqual('DL');
187
+ const [status] = civilServant.childNodes;
188
+ checkRow(status, 'Are you a civil servant?', 'Yes', false);
189
+ });
190
+ it('should only show change link next to the heading when the page is configured to have a single change link and form is a task list', async () => {
191
+ const CUSTOM_PAGES = PAGES.map(page => ({
192
+ ...page,
193
+ cya_link: {
194
+ page: page.id,
195
+ aria_suffix: 'page details',
196
+ singleChangeLink: true
820
197
  }
821
- }, _callee32);
822
- })));
198
+ }));
199
+ const SECTIONS = [{
200
+ name: 'These are your tasks',
201
+ tasks: [{
202
+ name: 'Task 1',
203
+ state: 'complete',
204
+ pages: ['civil-servant-status']
205
+ }]
206
+ }];
207
+ await (0, _testUtils.act)(async () => {
208
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
209
+ pages: CUSTOM_PAGES,
210
+ onRowAction: ON_ROW_ACTION,
211
+ onAction: ON_ACTION,
212
+ hide_title: true,
213
+ sections: SECTIONS,
214
+ type: _models.FormTypes.TASK_CYA
215
+ }), container);
216
+ });
217
+ const taskHeading1 = container.childNodes[0].childNodes[0];
218
+ expect(taskHeading1.tagName).toEqual('H2');
219
+ expect(taskHeading1.textContent).toEqual('Task 1');
220
+ expect(taskHeading1.classList).toContain("govuk-heading-m");
221
+ const cya = checkCYA(container);
222
+ const [, title, cyaChildNode] = cya.childNodes;
223
+ expect(title.tagName).toEqual('DIV');
224
+ expect(title.classList).toContain('heading-with-action');
225
+ const titleText = title.children[0];
226
+ expect(titleText.tagName).toEqual('DIV');
227
+ expect(titleText.classList).toContain('heading-text');
228
+ expect(titleText.textContent).toEqual('Are you a civil servant?');
229
+ const titleAction = title.children[1];
230
+ expect(titleAction.tagName).toEqual('DIV');
231
+ expect(titleAction.classList).toContain('heading-action');
232
+ expect(titleAction.textContent).toEqual("Change page details");
233
+ const civilServant = cyaChildNode.childNodes[0];
234
+ expect(civilServant.tagName).toEqual('DL');
235
+ const [status] = civilServant.childNodes;
236
+ checkRow(status, 'Are you a civil servant?', 'Yes', false);
237
+ });
238
+ it('should show no title if is set to hidden', async () => {
239
+ await (0, _testUtils.act)(async () => {
240
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
241
+ pages: PAGES,
242
+ onRowAction: ON_ROW_ACTION,
243
+ onAction: ON_ACTION,
244
+ hide_title: true
245
+ }), container);
246
+ });
247
+ const cya = checkCYA(container);
248
+ const [cyaChildNode] = cya.childNodes;
249
+ const names = cyaChildNode.childNodes[0];
250
+ expect(names.tagName).toEqual('DL');
251
+ expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
252
+ const [firstName, surname] = names.childNodes;
253
+ checkRow(firstName, 'First name', 'John', false);
254
+ checkRow(surname, 'Last name', 'Smith', false);
255
+ });
256
+ it('should show task list in CYA style', async () => {
257
+ const sections = [{
258
+ name: 'These are your tasks',
259
+ tasks: [{
260
+ name: 'Task 1',
261
+ state: 'complete',
262
+ pages: ['names']
263
+ }, {
264
+ name: 'Task 2',
265
+ state: 'complete',
266
+ pages: ['grade']
267
+ }]
268
+ }];
269
+ await (0, _testUtils.act)(async () => {
270
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
271
+ pages: PAGES,
272
+ onRowAction: ON_ROW_ACTION,
273
+ onAction: ON_ACTION,
274
+ hide_title: true,
275
+ sections: sections,
276
+ type: "task-list-cya"
277
+ }), container);
278
+ });
279
+ const taskHeading1 = container.childNodes[0].childNodes[0];
280
+ expect(taskHeading1.tagName).toEqual('H2');
281
+ expect(taskHeading1.textContent).toEqual('Task 1');
282
+ expect(taskHeading1.classList).toContain("govuk-heading-m");
283
+ const namesPageHeading = container.childNodes[0].childNodes[1];
284
+ expect(namesPageHeading.tagName).toEqual('DIV');
285
+ expect(namesPageHeading.textContent).toContain('John');
286
+ expect(namesPageHeading.classList).toContain("group-of-rows");
287
+ const taskHeading2 = container.childNodes[0].childNodes[2];
288
+ expect(taskHeading2.tagName).toEqual('H2');
289
+ expect(taskHeading2.textContent).toEqual('Task 2');
290
+ expect(taskHeading2.classList).toContain("govuk-heading-m");
291
+ const gradePageHeading = container.childNodes[0].childNodes[3];
292
+ expect(gradePageHeading.tagName).toEqual('H3');
293
+ expect(gradePageHeading.textContent).toEqual("What's your grade?");
294
+ expect(gradePageHeading.classList).toContain("govuk-heading-s");
295
+ });
296
+ it('should show task list in CYA style and priotitise displayName over name for a task', async () => {
297
+ const sections = [{
298
+ name: 'These are your tasks',
299
+ tasks: [{
300
+ name: 'Task 1',
301
+ displayName: 'Blue',
302
+ state: 'complete',
303
+ pages: ['names']
304
+ }, {
305
+ name: 'Task 2',
306
+ displayName: 'Red',
307
+ state: 'complete',
308
+ pages: ['grade']
309
+ }]
310
+ }];
311
+ await (0, _testUtils.act)(async () => {
312
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
313
+ pages: PAGES,
314
+ onRowAction: ON_ROW_ACTION,
315
+ onAction: ON_ACTION,
316
+ hide_title: true,
317
+ sections: sections,
318
+ type: "task-list-cya"
319
+ }), container);
320
+ });
321
+ const taskHeading1 = container.childNodes[0].childNodes[0];
322
+ expect(taskHeading1.textContent).toEqual('Blue');
323
+ const taskHeading2 = container.childNodes[0].childNodes[2];
324
+ expect(taskHeading2.textContent).toEqual('Red');
325
+ });
326
+ it('Show answers from multiple address fields into in one DL', async () => {
327
+ const ADDRESS_DATA = _utils.default.Data.setupForm(_group.default.pages, _group.default.components, _groupData.default);
328
+ const GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, {
329
+ ...ADDRESS_DATA
330
+ });
331
+ await (0, _testUtils.act)(async () => {
332
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
333
+ pages: GROUP_PAGES,
334
+ onRowAction: ON_ROW_ACTION,
335
+ onAction: ON_ACTION,
336
+ hide_title: true
337
+ }), container);
338
+ });
339
+ const cya = checkCYA(container);
340
+ const groupedComponent = cya.childNodes[10];
341
+ const keyGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[0];
342
+ expect(keyGroup.tagName).toEqual('DT');
343
+ expect(keyGroup.textContent).toEqual('Address details');
344
+ const valueGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[1];
345
+ expect(valueGroup.childNodes.length).toEqual(4);
346
+ expect(valueGroup.tagName).toEqual('DD');
347
+ expect(valueGroup.childNodes[0].textContent).toContain('10 Downing Street');
348
+ expect(valueGroup.childNodes[1].textContent).toContain('City of Westminster');
349
+ expect(valueGroup.childNodes[2].textContent).toContain('London');
350
+ expect(valueGroup.childNodes[3].textContent).toContain('SW1A 2AA');
351
+ const changeButtonDiv = groupedComponent.childNodes[0].childNodes[0].childNodes[2];
352
+ expect(changeButtonDiv.classList).toContain('govuk-summary-list__actions');
353
+ const changeButton = changeButtonDiv.childNodes[0];
354
+ expect(changeButton.tagName).toEqual('A');
355
+ expect(changeButton.textContent).toEqual('Change address details');
356
+ });
357
+ it('should render a group with one action button', async () => {
358
+ const GROUP_PAGES = _utils.default.FormPage.getAll(_groupOfRow.default.pages, _groupOfRow.default.components, {
359
+ ...DATA
360
+ });
361
+ await (0, _testUtils.act)(async () => {
362
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
363
+ pages: GROUP_PAGES,
364
+ onRowAction: ON_ROW_ACTION,
365
+ onAction: ON_ACTION,
366
+ groups: _groupOfRow.default.cya.groups
367
+ }), container);
368
+ });
369
+ const cya = checkCYA(container);
370
+ const namesGroup = cya.childNodes[2];
371
+ const firstNameRow = namesGroup.childNodes[0].childNodes[0];
372
+ expect(firstNameRow.childNodes.length).toEqual(2);
373
+ expect(firstNameRow.childNodes[0].textContent).toEqual('First name (optional)');
374
+ expect(firstNameRow.childNodes[0].tagName).toEqual('DT');
375
+ expect(firstNameRow.childNodes[1].textContent).toEqual('John');
376
+ expect(firstNameRow.childNodes[1].tagName).toEqual('DD');
377
+ const surname = namesGroup.childNodes[0].childNodes[1];
378
+ expect(surname.childNodes.length).toEqual(2);
379
+ expect(surname.childNodes[0].textContent).toEqual('Last name (optional)');
380
+ expect(surname.childNodes[0].tagName).toEqual('DT');
381
+ expect(surname.childNodes[1].textContent).toEqual('Smith');
382
+ expect(surname.childNodes[1].tagName).toEqual('DD');
383
+ const changeButtonDiv = namesGroup.childNodes[0].childNodes[2];
384
+ expect(changeButtonDiv.classList).toContain('change-group-button');
385
+ const changeButton = changeButtonDiv.childNodes[0];
386
+ expect(changeButton.tagName).toEqual('A');
387
+ expect(changeButton.textContent).toEqual('Change names');
388
+ });
389
+ it('should show page components corrently with interpolated title and cya_label, if label is missing', async () => {
390
+ const _PAGES = [].concat(_userProfile.default.pages);
391
+ // eslint-disable-next-line no-template-curly-in-string
392
+ _PAGES[0] = {
393
+ ..._PAGES[0],
394
+ title: 'Alpha ID: ${businessKey}'
395
+ };
396
+ const _COMPONENTS = [].concat(_userProfile.default.components);
397
+ _COMPONENTS[0] = {
398
+ ..._COMPONENTS[0],
399
+ label: undefined,
400
+ required: true,
401
+ // eslint-disable-next-line no-template-curly-in-string
402
+ cya_label: "Text ${currentUser.familyName}"
403
+ };
404
+ const T_PAGES = _utils.default.FormPage.getAll(_PAGES, _COMPONENTS, DATA);
405
+ await (0, _testUtils.act)(async () => {
406
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
407
+ pages: T_PAGES,
408
+ onRowAction: ON_ROW_ACTION,
409
+ onAction: ON_ACTION
410
+ }), container);
411
+ });
412
+ const cya = checkCYA(container);
413
+ const [, cyaTitle, cyaChildNode] = cya.childNodes;
414
+ expect(cyaTitle.textContent).toEqual('Alpha ID: 123456789');
415
+ const names = cyaChildNode.childNodes[0];
416
+ expect(names.tagName).toEqual('DL');
417
+ expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
418
+ const [firstName, surname] = names.childNodes;
419
+ const [label] = firstName.childNodes;
420
+ expect(label.textContent).toEqual('Text Smith');
421
+ checkRow(surname, 'Last name', 'Smith', false);
422
+ });
423
+ it('should show page components corrently with no label, if label and cya_label are missing', async () => {
424
+ const _PAGES = [].concat(_userProfile.default.pages);
425
+ const _COMPONENTS = [].concat(_userProfile.default.components);
426
+ _COMPONENTS[0] = {
427
+ ..._COMPONENTS[0],
428
+ label: undefined,
429
+ required: true,
430
+ cya_label: undefined
431
+ };
432
+ const T_PAGES = _utils.default.FormPage.getAll(_PAGES, _COMPONENTS, {
433
+ ...DATA
434
+ });
435
+ await (0, _testUtils.act)(async () => {
436
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
437
+ pages: T_PAGES,
438
+ onRowAction: ON_ROW_ACTION,
439
+ onAction: ON_ACTION
440
+ }), container);
441
+ });
442
+ const cya = checkCYA(container);
443
+ const [, cyaChildNode] = cya.childNodes;
444
+ const names = cyaChildNode.childNodes[0];
445
+ expect(names.tagName).toEqual('DL');
446
+ expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
447
+ const [firstName, surname] = names.childNodes;
448
+ const [label] = firstName.childNodes;
449
+ expect(label.textContent).toEqual("");
450
+ checkRow(surname, 'Last name', 'Smith', false);
451
+ });
452
+ it('should show task list in CYA style and hide pages from skipped tasks', async () => {
453
+ const sections = [{
454
+ name: 'These are your tasks',
455
+ tasks: [{
456
+ name: 'Task 1',
457
+ state: 'complete',
458
+ pages: ['names']
459
+ }, {
460
+ name: 'Task 2',
461
+ state: 'skipped',
462
+ pages: ['grade']
463
+ }]
464
+ }];
465
+ await (0, _testUtils.act)(async () => {
466
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
467
+ pages: PAGES,
468
+ onRowAction: ON_ROW_ACTION,
469
+ onAction: ON_ACTION,
470
+ hide_title: true,
471
+ sections: sections,
472
+ type: "task-list-cya"
473
+ }), container);
474
+ });
475
+ const taskHeading1 = container.childNodes[0].childNodes[0];
476
+ expect(taskHeading1.tagName).toEqual('H2');
477
+ expect(taskHeading1.textContent).toEqual('Task 1');
478
+ expect(taskHeading1.classList).toContain("govuk-heading-m");
479
+ const namesPageHeading = container.childNodes[0].childNodes[1];
480
+ expect(namesPageHeading.tagName).toEqual('DIV');
481
+ expect(namesPageHeading.textContent).toContain('John');
482
+ expect(namesPageHeading.classList).toContain("group-of-rows");
483
+ expect(container.childNodes[0].childNodes.length).toEqual(2); // second task skipped so not shown
484
+ });
485
+ it('Show answers from multiple address fields into in one DL correctly when hideBlankRows is true', async () => {
486
+ const ADDRESS_DATA = _utils.default.Data.setupForm(_group.default.pages, _group.default.components, _groupData.default);
487
+ const GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, {
488
+ ...ADDRESS_DATA
489
+ });
490
+ await (0, _testUtils.act)(async () => {
491
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
492
+ pages: GROUP_PAGES,
493
+ onRowAction: ON_ROW_ACTION,
494
+ onAction: ON_ACTION,
495
+ hide_title: true,
496
+ hideBlankRows: true
497
+ }), container);
498
+ });
499
+ const cya = checkCYA(container);
500
+ const groupedComponent = cya.childNodes[6];
501
+ const keyGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[0];
502
+ expect(keyGroup.tagName).toEqual('DT');
503
+ expect(keyGroup.textContent).toEqual('Address details');
504
+ const valueGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[1];
505
+ expect(valueGroup.childNodes.length).toEqual(4);
506
+ expect(valueGroup.tagName).toEqual('DD');
507
+ expect(valueGroup.childNodes[0].textContent).toContain('10 Downing Street');
508
+ expect(valueGroup.childNodes[1].textContent).toContain('City of Westminster');
509
+ expect(valueGroup.childNodes[2].textContent).toContain('London');
510
+ expect(valueGroup.childNodes[3].textContent).toContain('SW1A 2AA');
511
+ const changeButtonDiv = groupedComponent.childNodes[0].childNodes[0].childNodes[2];
512
+ expect(changeButtonDiv.classList).toContain('govuk-summary-list__actions');
513
+ const changeButton = changeButtonDiv.childNodes[0];
514
+ expect(changeButton.tagName).toEqual('A');
515
+ expect(changeButton.textContent).toEqual('Change address details');
516
+ });
823
517
  });
824
518
  });