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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +22 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
  5. package/dist/components/CollectionPage/CollectionPage.js +63 -73
  6. package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
  9. package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
  11. package/dist/components/CollectionSummary/Confirmation.js +12 -14
  12. package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
  13. package/dist/components/CollectionSummary/RenderListView.js +52 -46
  14. package/dist/components/CollectionSummary/RenderListView.scss +1 -1
  15. package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
  16. package/dist/components/CollectionSummary/SummaryCard.js +152 -110
  17. package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
  18. package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
  19. package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
  20. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
  21. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
  22. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
  23. package/dist/components/FormComponent/Collection.js +108 -74
  24. package/dist/components/FormComponent/Collection.test.js +1081 -909
  25. package/dist/components/FormComponent/Container.js +39 -40
  26. package/dist/components/FormComponent/Container.test.js +412 -312
  27. package/dist/components/FormComponent/FormComponent.js +72 -69
  28. package/dist/components/FormComponent/FormComponent.test.js +414 -353
  29. package/dist/components/FormComponent/helpers/addLabel.js +7 -4
  30. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  31. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  32. package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
  33. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  34. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
  35. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  36. package/dist/components/FormComponent/helpers/index.js +4 -4
  37. package/dist/components/FormPage/FormPage.js +80 -65
  38. package/dist/components/FormPage/FormPage.test.js +163 -127
  39. package/dist/components/FormRenderer/FormRenderer.js +180 -143
  40. package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
  41. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  42. package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
  43. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  44. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  45. package/dist/components/FormRenderer/handlers/index.js +1 -1
  46. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  47. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  48. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  49. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  50. package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
  51. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
  52. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
  53. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  54. package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
  55. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  56. package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
  57. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  58. package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
  59. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  60. package/dist/components/FormRenderer/helpers/getPage.js +4 -2
  61. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  62. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
  63. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  64. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  65. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
  66. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
  67. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
  68. package/dist/components/FormRenderer/helpers/index.js +1 -1
  69. package/dist/components/FormRenderer/onCYAAction.js +51 -59
  70. package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
  71. package/dist/components/FormRenderer/onPageAction.js +39 -43
  72. package/dist/components/FormRenderer/onPageAction.test.js +208 -223
  73. package/dist/components/FormRenderer/onTaskAction.js +13 -9
  74. package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
  75. package/dist/components/PageActions/ActionButton.js +15 -12
  76. package/dist/components/PageActions/ActionButton.test.js +78 -56
  77. package/dist/components/PageActions/PageActions.js +10 -10
  78. package/dist/components/PageActions/PageActions.test.js +115 -86
  79. package/dist/components/SummaryList/GroupAction.js +17 -9
  80. package/dist/components/SummaryList/GroupAction.test.js +33 -37
  81. package/dist/components/SummaryList/RowAction.js +16 -11
  82. package/dist/components/SummaryList/RowAction.test.js +33 -37
  83. package/dist/components/SummaryList/SummaryList.js +34 -21
  84. package/dist/components/SummaryList/SummaryList.scss +15 -0
  85. package/dist/components/SummaryList/SummaryList.test.js +226 -143
  86. package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
  87. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
  88. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
  89. package/dist/components/SummaryList/SummaryListRow.js +4 -6
  90. package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
  91. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
  92. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  93. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
  94. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  95. package/dist/components/SummaryList/helpers/index.js +1 -1
  96. package/dist/components/TaskList/Task.js +29 -19
  97. package/dist/components/TaskList/Task.test.js +76 -83
  98. package/dist/components/TaskList/TaskList.js +92 -49
  99. package/dist/components/TaskList/TaskList.scss +24 -0
  100. package/dist/components/TaskList/TaskList.test.js +255 -113
  101. package/dist/components/TaskList/TaskState.js +5 -7
  102. package/dist/components/TaskList/TaskState.test.js +45 -52
  103. package/dist/components/index.js +7 -7
  104. package/dist/context/HooksContext/HooksContext.js +80 -57
  105. package/dist/context/HooksContext/HooksContext.test.js +35 -26
  106. package/dist/context/HooksContext/index.js +4 -3
  107. package/dist/context/ValidationContext/ValidationContext.js +94 -43
  108. package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
  109. package/dist/context/ValidationContext/index.js +4 -3
  110. package/dist/context/index.js +2 -2
  111. package/dist/hooks/index.js +10 -9
  112. package/dist/hooks/useAxios.js +40 -14
  113. package/dist/hooks/useGetRequest.js +97 -61
  114. package/dist/hooks/useHooks.js +3 -1
  115. package/dist/hooks/useRefData.js +39 -26
  116. package/dist/hooks/useValidation.js +3 -1
  117. package/dist/index.js +14 -13
  118. package/dist/models/CollectionLabels.js +1 -1
  119. package/dist/models/ComponentTypes.js +25 -25
  120. package/dist/models/EventTypes.js +4 -4
  121. package/dist/models/FormPages.js +4 -4
  122. package/dist/models/FormTypes.js +8 -8
  123. package/dist/models/HubFormats.js +3 -3
  124. package/dist/models/PageAction.js +38 -44
  125. package/dist/models/TaskStates.js +28 -29
  126. package/dist/models/index.js +9 -9
  127. package/dist/setupTests.js +31 -30
  128. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  129. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
  130. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
  131. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
  132. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
  133. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
  134. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  135. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  136. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
  137. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
  138. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
  139. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
  140. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
  141. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
  142. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
  143. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
  144. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
  145. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
  146. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
  147. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
  148. package/dist/utils/CheckYourAnswers/index.js +1 -1
  149. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  150. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  151. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  152. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  153. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  154. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
  155. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
  156. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
  157. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  158. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  159. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
  160. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  161. package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
  162. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  163. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  164. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
  165. package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
  166. package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
  167. package/dist/utils/CollectionPage/index.js +1 -1
  168. package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
  169. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
  170. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
  171. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  172. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
  173. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  174. package/dist/utils/Component/addShowWhen.js +8 -4
  175. package/dist/utils/Component/addShowWhen.test.js +37 -37
  176. package/dist/utils/Component/applyToComponentTree.js +18 -18
  177. package/dist/utils/Component/applyToComponentTree.test.js +32 -27
  178. package/dist/utils/Component/cleanAttributes.js +13 -10
  179. package/dist/utils/Component/cleanAttributes.test.js +18 -17
  180. package/dist/utils/Component/elevateNestedComponents.js +7 -6
  181. package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
  182. package/dist/utils/Component/getComponent.js +94 -88
  183. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
  184. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
  185. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
  186. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
  187. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
  188. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
  190. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
  191. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
  192. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
  193. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
  194. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
  195. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
  196. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
  197. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
  198. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
  199. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
  200. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
  201. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
  202. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
  203. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  204. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
  205. package/dist/utils/Component/getDefaultValue.js +8 -6
  206. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  207. package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
  208. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  209. package/dist/utils/Component/index.js +1 -1
  210. package/dist/utils/Component/isEditable.js +4 -2
  211. package/dist/utils/Component/isEditable.test.js +15 -14
  212. package/dist/utils/Component/optionIsSelected.js +6 -1
  213. package/dist/utils/Component/optionIsSelected.test.js +35 -9
  214. package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
  215. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  216. package/dist/utils/Component/showComponent.js +1 -1
  217. package/dist/utils/Component/showComponent.test.js +28 -28
  218. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  219. package/dist/utils/Condition/index.js +1 -1
  220. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  221. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  222. package/dist/utils/Condition/meetsCondition.js +25 -16
  223. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  224. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  225. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  226. package/dist/utils/Condition/setupConditions.js +18 -13
  227. package/dist/utils/Condition/setupConditions.test.js +7 -7
  228. package/dist/utils/Container/getEditableComponents.js +5 -3
  229. package/dist/utils/Container/getEditableComponents.test.js +45 -43
  230. package/dist/utils/Container/index.js +1 -1
  231. package/dist/utils/Container/setupNesting.js +20 -16
  232. package/dist/utils/Container/setupNesting.test.js +30 -27
  233. package/dist/utils/Container/showContainer.js +7 -3
  234. package/dist/utils/Container/showContainer.test.js +30 -30
  235. package/dist/utils/Data/applyFormula.js +48 -38
  236. package/dist/utils/Data/applyFormula.test.js +20 -20
  237. package/dist/utils/Data/getAutocompleteSource.js +26 -18
  238. package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
  239. package/dist/utils/Data/getDataPath.js +28 -18
  240. package/dist/utils/Data/getDataPath.test.js +12 -12
  241. package/dist/utils/Data/getOptions.js +30 -24
  242. package/dist/utils/Data/getOptions.test.js +27 -27
  243. package/dist/utils/Data/getSourceData.js +19 -6
  244. package/dist/utils/Data/getSourceData.test.js +80 -84
  245. package/dist/utils/Data/index.js +1 -1
  246. package/dist/utils/Data/nestInRefdataOptions.js +16 -9
  247. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  248. package/dist/utils/Data/refDataToOptions.js +13 -10
  249. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  250. package/dist/utils/Data/setDataItem.js +8 -7
  251. package/dist/utils/Data/setDataItem.test.js +37 -37
  252. package/dist/utils/Data/setupFormData.js +21 -13
  253. package/dist/utils/Data/setupFormData.test.js +50 -51
  254. package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
  255. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  256. package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
  257. package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
  258. package/dist/utils/FormPage/getConditionalText.js +3 -3
  259. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  260. package/dist/utils/FormPage/getFormPage.js +16 -15
  261. package/dist/utils/FormPage/getFormPage.test.js +46 -47
  262. package/dist/utils/FormPage/getFormPages.js +12 -7
  263. package/dist/utils/FormPage/getFormPages.test.js +23 -20
  264. package/dist/utils/FormPage/getPageActions.js +15 -9
  265. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  266. package/dist/utils/FormPage/getParagraphFromText.js +7 -5
  267. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  268. package/dist/utils/FormPage/index.js +4 -2
  269. package/dist/utils/FormPage/showFormPage.js +7 -3
  270. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  271. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  272. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  273. package/dist/utils/FormPage/useComponent.js +28 -21
  274. package/dist/utils/FormPage/useComponent.test.js +79 -77
  275. package/dist/utils/Format/formatData.js +1 -1
  276. package/dist/utils/Format/formatData.test.js +18 -18
  277. package/dist/utils/Format/formatDataForComponent.js +6 -5
  278. package/dist/utils/Format/formatDataForComponent.test.js +78 -50
  279. package/dist/utils/Format/formatDataForForm.js +8 -6
  280. package/dist/utils/Format/formatDataForForm.test.js +16 -13
  281. package/dist/utils/Format/formatDataForPage.js +5 -4
  282. package/dist/utils/Format/formatDataForPage.test.js +25 -20
  283. package/dist/utils/Format/index.js +1 -1
  284. package/dist/utils/Hub/getFormHub.js +1 -1
  285. package/dist/utils/Hub/getFormHub.test.js +31 -28
  286. package/dist/utils/Hub/index.js +1 -1
  287. package/dist/utils/Meta/constants.js +2 -2
  288. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  289. package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
  290. package/dist/utils/Meta/documents/index.js +1 -1
  291. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
  292. package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
  293. package/dist/utils/Meta/index.js +1 -1
  294. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  295. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  296. package/dist/utils/Operate/getFirstOf.js +5 -5
  297. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  298. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  299. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
  300. package/dist/utils/Operate/getLength.js +50 -0
  301. package/dist/utils/Operate/getLength.test.js +89 -0
  302. package/dist/utils/Operate/index.js +1 -1
  303. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  304. package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
  305. package/dist/utils/Operate/runPageOperations.js +9 -7
  306. package/dist/utils/Operate/runPageOperations.test.js +36 -35
  307. package/dist/utils/Operate/setValueInFormData.js +2 -2
  308. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  309. package/dist/utils/Operate/shouldRun.js +6 -6
  310. package/dist/utils/Operate/shouldRun.test.js +27 -21
  311. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  312. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  313. package/dist/utils/Validate/additional/index.js +6 -6
  314. package/dist/utils/Validate/additional/index.test.js +12 -12
  315. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  316. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  317. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  318. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  319. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
  320. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
  321. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  322. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  323. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  325. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  326. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  327. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  328. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  329. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  330. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  331. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  332. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  333. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  334. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  335. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
  336. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
  337. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  338. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
  339. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  340. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  341. package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
  342. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  343. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  344. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
  345. package/dist/utils/Validate/additional/utils.js +22 -9
  346. package/dist/utils/Validate/index.js +1 -1
  347. package/dist/utils/Validate/validateCollection.js +25 -19
  348. package/dist/utils/Validate/validateCollection.test.js +66 -74
  349. package/dist/utils/Validate/validateComponent.js +21 -18
  350. package/dist/utils/Validate/validateComponent.test.js +176 -166
  351. package/dist/utils/Validate/validateContainer.js +20 -15
  352. package/dist/utils/Validate/validateContainer.test.js +52 -58
  353. package/dist/utils/Validate/validateDate.js +21 -15
  354. package/dist/utils/Validate/validateDate.test.js +32 -31
  355. package/dist/utils/Validate/validateEmail.js +8 -6
  356. package/dist/utils/Validate/validateEmail.test.js +25 -25
  357. package/dist/utils/Validate/validateMultifile.js +7 -5
  358. package/dist/utils/Validate/validateMultifile.test.js +18 -17
  359. package/dist/utils/Validate/validatePage.js +22 -19
  360. package/dist/utils/Validate/validatePage.test.js +203 -215
  361. package/dist/utils/Validate/validateRegex.js +5 -3
  362. package/dist/utils/Validate/validateRegex.test.js +14 -14
  363. package/dist/utils/Validate/validateRequired.js +6 -4
  364. package/dist/utils/Validate/validateRequired.test.js +18 -18
  365. package/dist/utils/Validate/validateTextArea.js +6 -4
  366. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  367. package/dist/utils/Validate/validateTime.js +26 -11
  368. package/dist/utils/Validate/validateTime.test.js +62 -16
  369. package/dist/utils/index.js +9 -7
  370. package/package.json +2 -2
  371. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
  372. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
@@ -17,34 +17,46 @@ 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 (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; }
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; }
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
- // Global imports
24
-
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
25
38
  // Local imports
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 => {
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) {
36
46
  ON_ROW_ACTION_CALLS.push(row);
37
47
  };
38
- const ON_ACTION_CALLS = [];
39
- const ON_ACTION = (action, onError) => {
48
+ var ON_ACTION_CALLS = [];
49
+ var ON_ACTION = function ON_ACTION(action, onError) {
40
50
  ON_ACTION_CALLS.push({
41
- action,
42
- onError
51
+ action: action,
52
+ onError: onError
43
53
  });
44
54
  };
45
- let container = null;
46
- const refDataUrl = suffix => "".concat(_userProfileData.default.urls.refData, "/").concat(suffix);
47
- beforeEach(() => {
55
+ var container = null;
56
+ var refDataUrl = function refDataUrl(suffix) {
57
+ return "".concat(_userProfileData.default.urls.refData, "/").concat(suffix);
58
+ };
59
+ beforeEach(function () {
48
60
  ON_ROW_ACTION_CALLS.length = 0;
49
61
  ON_ACTION_CALLS.length = 0;
50
62
  container = document.createElement('div');
@@ -54,19 +66,19 @@ describe('components', () => {
54
66
  mockAxios.onGet(refDataUrl('grade')).reply(200, _grade.default);
55
67
  mockAxios.onGet(refDataUrl('team')).reply(200, _team.default);
56
68
  });
57
- afterEach(() => {
69
+ afterEach(function () {
58
70
  (0, _reactDom.unmountComponentAtNode)(container);
59
71
  container.remove();
60
72
  container = null;
61
73
  });
62
- const checkCYA = cyaContainer => {
63
- const checkCYAContainer = cyaContainer;
64
- const cya = checkCYAContainer.childNodes[0];
74
+ var checkCYA = function checkCYA(cyaContainer) {
75
+ var checkCYAContainer = cyaContainer;
76
+ var cya = checkCYAContainer.childNodes[0];
65
77
  expect(cya.tagName).toEqual('DIV');
66
78
  expect(cya.classList).toContain(_CheckYourAnswers.DEFAULT_CLASS);
67
79
  return cya;
68
80
  };
69
- const checkRow = (row, key, value, action) => {
81
+ var checkRow = function checkRow(row, key, value, action) {
70
82
  expect(row.textContent).toContain(key);
71
83
  expect(row.textContent).toContain(value);
72
84
  if (action) {
@@ -75,444 +87,830 @@ describe('components', () => {
75
87
  expect(row.textContent).not.toContain('Change');
76
88
  }
77
89
  };
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
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();
164
119
  }
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
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();
197
153
  }
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
- });
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('should show task list in CYA style and not show sections without any pages', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {
531
+ var sections, taskHeading1, taskHeading2;
532
+ return _regeneratorRuntime().wrap(function _callee22$(_context22) {
533
+ while (1) switch (_context22.prev = _context22.next) {
534
+ case 0:
535
+ sections = [{
536
+ name: 'These are your tasks',
537
+ tasks: [{
538
+ name: 'Task 1',
539
+ displayName: 'Blue',
540
+ state: 'complete',
541
+ pages: []
542
+ }, {
543
+ name: 'Task 2',
544
+ displayName: 'Red',
545
+ state: 'complete',
546
+ pages: ['grade']
547
+ }]
548
+ }];
549
+ _context22.next = 3;
550
+ return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {
551
+ return _regeneratorRuntime().wrap(function _callee21$(_context21) {
552
+ while (1) switch (_context21.prev = _context21.next) {
553
+ case 0:
554
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
555
+ pages: PAGES,
556
+ onRowAction: ON_ROW_ACTION,
557
+ onAction: ON_ACTION,
558
+ hide_title: true,
559
+ sections: sections,
560
+ type: "task-list-cya"
561
+ }), container);
562
+ case 1:
563
+ case "end":
564
+ return _context21.stop();
565
+ }
566
+ }, _callee21);
567
+ })));
568
+ case 3:
569
+ taskHeading1 = container.childNodes[0].childNodes[0];
570
+ expect(taskHeading1.textContent).toEqual('');
571
+ taskHeading2 = container.childNodes[0].childNodes[1];
572
+ expect(taskHeading2.textContent).toEqual('Red');
573
+ case 7:
574
+ case "end":
575
+ return _context22.stop();
576
+ }
577
+ }, _callee22);
578
+ })));
579
+ it('Show answers from multiple address fields into in one DL', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {
580
+ var ADDRESS_DATA, GROUP_PAGES, cya, groupedComponent, keyGroup, valueGroup, changeButtonDiv, changeButton;
581
+ return _regeneratorRuntime().wrap(function _callee24$(_context24) {
582
+ while (1) switch (_context24.prev = _context24.next) {
583
+ case 0:
584
+ ADDRESS_DATA = _utils.default.Data.setupForm(_group.default.pages, _group.default.components, _groupData.default);
585
+ GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, _objectSpread({}, ADDRESS_DATA));
586
+ _context24.next = 4;
587
+ return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {
588
+ return _regeneratorRuntime().wrap(function _callee23$(_context23) {
589
+ while (1) switch (_context23.prev = _context23.next) {
590
+ case 0:
591
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
592
+ pages: GROUP_PAGES,
593
+ onRowAction: ON_ROW_ACTION,
594
+ onAction: ON_ACTION,
595
+ hide_title: true
596
+ }), container);
597
+ case 1:
598
+ case "end":
599
+ return _context23.stop();
600
+ }
601
+ }, _callee23);
602
+ })));
603
+ case 4:
604
+ cya = checkCYA(container);
605
+ groupedComponent = cya.childNodes[10];
606
+ keyGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[0];
607
+ expect(keyGroup.tagName).toEqual('DT');
608
+ expect(keyGroup.textContent).toEqual('Address details');
609
+ valueGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[1];
610
+ expect(valueGroup.childNodes.length).toEqual(4);
611
+ expect(valueGroup.tagName).toEqual('DD');
612
+ expect(valueGroup.childNodes[0].textContent).toContain('10 Downing Street');
613
+ expect(valueGroup.childNodes[1].textContent).toContain('City of Westminster');
614
+ expect(valueGroup.childNodes[2].textContent).toContain('London');
615
+ expect(valueGroup.childNodes[3].textContent).toContain('SW1A 2AA');
616
+ changeButtonDiv = groupedComponent.childNodes[0].childNodes[0].childNodes[2];
617
+ expect(changeButtonDiv.classList).toContain('govuk-summary-list__actions');
618
+ changeButton = changeButtonDiv.childNodes[0];
619
+ expect(changeButton.tagName).toEqual('A');
620
+ expect(changeButton.textContent).toEqual('Change address details');
621
+ case 21:
622
+ case "end":
623
+ return _context24.stop();
624
+ }
625
+ }, _callee24);
626
+ })));
627
+ it('should render a group with one action button', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {
628
+ var GROUP_PAGES, cya, namesGroup, firstNameRow, surname, changeButtonDiv, changeButton;
629
+ return _regeneratorRuntime().wrap(function _callee26$(_context26) {
630
+ while (1) switch (_context26.prev = _context26.next) {
631
+ case 0:
632
+ GROUP_PAGES = _utils.default.FormPage.getAll(_groupOfRow.default.pages, _groupOfRow.default.components, _objectSpread({}, DATA));
633
+ _context26.next = 3;
634
+ return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {
635
+ return _regeneratorRuntime().wrap(function _callee25$(_context25) {
636
+ while (1) switch (_context25.prev = _context25.next) {
637
+ case 0:
638
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
639
+ pages: GROUP_PAGES,
640
+ onRowAction: ON_ROW_ACTION,
641
+ onAction: ON_ACTION,
642
+ groups: _groupOfRow.default.cya.groups
643
+ }), container);
644
+ case 1:
645
+ case "end":
646
+ return _context25.stop();
647
+ }
648
+ }, _callee25);
649
+ })));
650
+ case 3:
651
+ cya = checkCYA(container);
652
+ namesGroup = cya.childNodes[2];
653
+ firstNameRow = namesGroup.childNodes[0].childNodes[0];
654
+ expect(firstNameRow.childNodes.length).toEqual(2);
655
+ expect(firstNameRow.childNodes[0].textContent).toEqual('First name (optional)');
656
+ expect(firstNameRow.childNodes[0].tagName).toEqual('DT');
657
+ expect(firstNameRow.childNodes[1].textContent).toEqual('John');
658
+ expect(firstNameRow.childNodes[1].tagName).toEqual('DD');
659
+ surname = namesGroup.childNodes[0].childNodes[1];
660
+ expect(surname.childNodes.length).toEqual(2);
661
+ expect(surname.childNodes[0].textContent).toEqual('Last name (optional)');
662
+ expect(surname.childNodes[0].tagName).toEqual('DT');
663
+ expect(surname.childNodes[1].textContent).toEqual('Smith');
664
+ expect(surname.childNodes[1].tagName).toEqual('DD');
665
+ changeButtonDiv = namesGroup.childNodes[0].childNodes[2];
666
+ expect(changeButtonDiv.classList).toContain('change-group-button');
667
+ changeButton = changeButtonDiv.childNodes[0];
668
+ expect(changeButton.tagName).toEqual('A');
669
+ expect(changeButton.textContent).toEqual('Change names');
670
+ case 22:
671
+ case "end":
672
+ return _context26.stop();
673
+ }
674
+ }, _callee26);
675
+ })));
676
+ it('should render empty optional fields with a placeholder value when provided', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {
677
+ var GROUP_PAGES, cya, namesGroup, firstNameRow, surname;
678
+ return _regeneratorRuntime().wrap(function _callee28$(_context28) {
679
+ while (1) switch (_context28.prev = _context28.next) {
680
+ case 0:
681
+ GROUP_PAGES = _utils.default.FormPage.getAll(_groupOfRow.default.pages, _groupOfRow.default.components, {});
682
+ _context28.next = 3;
683
+ return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {
684
+ return _regeneratorRuntime().wrap(function _callee27$(_context27) {
685
+ while (1) switch (_context27.prev = _context27.next) {
686
+ case 0:
687
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
688
+ pages: GROUP_PAGES,
689
+ groups: _groupOfRow.default.cya.groups,
690
+ optionalFieldPlaceholder: "Not entered"
691
+ }), container);
692
+ case 1:
693
+ case "end":
694
+ return _context27.stop();
695
+ }
696
+ }, _callee27);
697
+ })));
698
+ case 3:
699
+ cya = checkCYA(container);
700
+ namesGroup = cya.childNodes[2];
701
+ firstNameRow = namesGroup.childNodes[0].childNodes[0];
702
+ expect(firstNameRow.childNodes.length).toEqual(2);
703
+ expect(firstNameRow.childNodes[0].textContent).toEqual('First name (optional)');
704
+ expect(firstNameRow.childNodes[0].tagName).toEqual('DT');
705
+ expect(firstNameRow.childNodes[1].textContent).toEqual('Not entered');
706
+ expect(firstNameRow.childNodes[1].tagName).toEqual('DD');
707
+ surname = namesGroup.childNodes[0].childNodes[1];
708
+ expect(surname.childNodes.length).toEqual(2);
709
+ expect(surname.childNodes[0].textContent).toEqual('Last name (optional)');
710
+ expect(surname.childNodes[0].tagName).toEqual('DT');
711
+ expect(surname.childNodes[1].textContent).toEqual('Not entered');
712
+ expect(surname.childNodes[1].tagName).toEqual('DD');
713
+ case 17:
714
+ case "end":
715
+ return _context28.stop();
716
+ }
717
+ }, _callee28);
718
+ })));
719
+ it('should show page components corrently with interpolated title and cya_label, if label is missing', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {
720
+ var _PAGES, _COMPONENTS, T_PAGES, cya, _cya$childNodes7, cyaTitle, cyaChildNode, names, _names$childNodes3, firstName, surname, _firstName$childNodes, label;
721
+ return _regeneratorRuntime().wrap(function _callee30$(_context30) {
722
+ while (1) switch (_context30.prev = _context30.next) {
723
+ case 0:
724
+ _PAGES = [].concat(_userProfile.default.pages); // eslint-disable-next-line no-template-curly-in-string
725
+ _PAGES[0] = _objectSpread(_objectSpread({}, _PAGES[0]), {}, {
726
+ title: 'Alpha ID: ${businessKey}'
727
+ });
728
+ _COMPONENTS = [].concat(_userProfile.default.components);
729
+ _COMPONENTS[0] = _objectSpread(_objectSpread({}, _COMPONENTS[0]), {}, {
730
+ label: undefined,
731
+ required: true,
732
+ // eslint-disable-next-line no-template-curly-in-string
733
+ cya_label: "Text ${currentUser.familyName}"
734
+ });
735
+ T_PAGES = _utils.default.FormPage.getAll(_PAGES, _COMPONENTS, DATA);
736
+ _context30.next = 7;
737
+ return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {
738
+ return _regeneratorRuntime().wrap(function _callee29$(_context29) {
739
+ while (1) switch (_context29.prev = _context29.next) {
740
+ case 0:
741
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
742
+ pages: T_PAGES,
743
+ onRowAction: ON_ROW_ACTION,
744
+ onAction: ON_ACTION
745
+ }), container);
746
+ case 1:
747
+ case "end":
748
+ return _context29.stop();
749
+ }
750
+ }, _callee29);
751
+ })));
752
+ case 7:
753
+ cya = checkCYA(container);
754
+ _cya$childNodes7 = _slicedToArray(cya.childNodes, 3), cyaTitle = _cya$childNodes7[1], cyaChildNode = _cya$childNodes7[2];
755
+ expect(cyaTitle.textContent).toEqual('Alpha ID: 123456789');
756
+ names = cyaChildNode.childNodes[0];
757
+ expect(names.tagName).toEqual('DL');
758
+ expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
759
+ _names$childNodes3 = _slicedToArray(names.childNodes, 2), firstName = _names$childNodes3[0], surname = _names$childNodes3[1];
760
+ _firstName$childNodes = _slicedToArray(firstName.childNodes, 1), label = _firstName$childNodes[0];
761
+ expect(label.textContent).toEqual('Text Smith');
762
+ checkRow(surname, 'Last name', 'Smith', false);
763
+ case 17:
764
+ case "end":
765
+ return _context30.stop();
766
+ }
767
+ }, _callee30);
768
+ })));
769
+ it('should show page components corrently with no label, if label and cya_label are missing', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {
770
+ var _PAGES, _COMPONENTS, T_PAGES, cya, _cya$childNodes8, cyaChildNode, names, _names$childNodes4, firstName, surname, _firstName$childNodes2, label;
771
+ return _regeneratorRuntime().wrap(function _callee32$(_context32) {
772
+ while (1) switch (_context32.prev = _context32.next) {
773
+ case 0:
774
+ _PAGES = [].concat(_userProfile.default.pages);
775
+ _COMPONENTS = [].concat(_userProfile.default.components);
776
+ _COMPONENTS[0] = _objectSpread(_objectSpread({}, _COMPONENTS[0]), {}, {
777
+ label: undefined,
778
+ required: true,
779
+ cya_label: undefined
780
+ });
781
+ T_PAGES = _utils.default.FormPage.getAll(_PAGES, _COMPONENTS, _objectSpread({}, DATA));
782
+ _context32.next = 6;
783
+ return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {
784
+ return _regeneratorRuntime().wrap(function _callee31$(_context31) {
785
+ while (1) switch (_context31.prev = _context31.next) {
786
+ case 0:
787
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
788
+ pages: T_PAGES,
789
+ onRowAction: ON_ROW_ACTION,
790
+ onAction: ON_ACTION
791
+ }), container);
792
+ case 1:
793
+ case "end":
794
+ return _context31.stop();
795
+ }
796
+ }, _callee31);
797
+ })));
798
+ case 6:
799
+ cya = checkCYA(container);
800
+ _cya$childNodes8 = _slicedToArray(cya.childNodes, 2), cyaChildNode = _cya$childNodes8[1];
801
+ names = cyaChildNode.childNodes[0];
802
+ expect(names.tagName).toEqual('DL');
803
+ expect(names.classList).toContain("govuk-!-margin-bottom-".concat(_CheckYourAnswers.DEFAULT_MARGIN_BOTTOM));
804
+ _names$childNodes4 = _slicedToArray(names.childNodes, 2), firstName = _names$childNodes4[0], surname = _names$childNodes4[1];
805
+ _firstName$childNodes2 = _slicedToArray(firstName.childNodes, 1), label = _firstName$childNodes2[0];
806
+ expect(label.textContent).toEqual("");
807
+ checkRow(surname, 'Last name', 'Smith', false);
808
+ case 15:
809
+ case "end":
810
+ return _context32.stop();
811
+ }
812
+ }, _callee32);
813
+ })));
814
+ it('should show task list in CYA style and hide pages from skipped tasks', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {
815
+ var sections, taskHeading1, namesPageHeading;
816
+ return _regeneratorRuntime().wrap(function _callee34$(_context34) {
817
+ while (1) switch (_context34.prev = _context34.next) {
818
+ case 0:
819
+ sections = [{
820
+ name: 'These are your tasks',
821
+ tasks: [{
822
+ name: 'Task 1',
823
+ state: 'complete',
824
+ pages: ['names']
825
+ }, {
826
+ name: 'Task 2',
827
+ state: 'skipped',
828
+ pages: ['grade']
829
+ }]
830
+ }];
831
+ _context34.next = 3;
832
+ return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {
833
+ return _regeneratorRuntime().wrap(function _callee33$(_context33) {
834
+ while (1) switch (_context33.prev = _context33.next) {
835
+ case 0:
836
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
837
+ pages: PAGES,
838
+ onRowAction: ON_ROW_ACTION,
839
+ onAction: ON_ACTION,
840
+ hide_title: true,
841
+ sections: sections,
842
+ type: "task-list-cya"
843
+ }), container);
844
+ case 1:
845
+ case "end":
846
+ return _context33.stop();
847
+ }
848
+ }, _callee33);
849
+ })));
850
+ case 3:
851
+ taskHeading1 = container.childNodes[0].childNodes[0];
852
+ expect(taskHeading1.tagName).toEqual('H2');
853
+ expect(taskHeading1.textContent).toEqual('Task 1');
854
+ expect(taskHeading1.classList).toContain("govuk-heading-m");
855
+ namesPageHeading = container.childNodes[0].childNodes[1];
856
+ expect(namesPageHeading.tagName).toEqual('DIV');
857
+ expect(namesPageHeading.textContent).toContain('John');
858
+ expect(namesPageHeading.classList).toContain("group-of-rows");
859
+ expect(container.childNodes[0].childNodes.length).toEqual(2); // second task skipped so not shown
860
+ case 12:
861
+ case "end":
862
+ return _context34.stop();
863
+ }
864
+ }, _callee34);
865
+ })));
866
+ it('Show answers from multiple address fields into in one DL correctly when hideBlankRows is true', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {
867
+ var ADDRESS_DATA, GROUP_PAGES, cya, groupedComponent, keyGroup, valueGroup, changeButtonDiv, changeButton;
868
+ return _regeneratorRuntime().wrap(function _callee36$(_context36) {
869
+ while (1) switch (_context36.prev = _context36.next) {
870
+ case 0:
871
+ ADDRESS_DATA = _utils.default.Data.setupForm(_group.default.pages, _group.default.components, _groupData.default);
872
+ GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, _objectSpread({}, ADDRESS_DATA));
873
+ _context36.next = 4;
874
+ return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {
875
+ return _regeneratorRuntime().wrap(function _callee35$(_context35) {
876
+ while (1) switch (_context35.prev = _context35.next) {
877
+ case 0:
878
+ (0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
879
+ pages: GROUP_PAGES,
880
+ onRowAction: ON_ROW_ACTION,
881
+ onAction: ON_ACTION,
882
+ hide_title: true,
883
+ hideBlankRows: true
884
+ }), container);
885
+ case 1:
886
+ case "end":
887
+ return _context35.stop();
888
+ }
889
+ }, _callee35);
890
+ })));
891
+ case 4:
892
+ cya = checkCYA(container);
893
+ groupedComponent = cya.childNodes[6];
894
+ keyGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[0];
895
+ expect(keyGroup.tagName).toEqual('DT');
896
+ expect(keyGroup.textContent).toEqual('Address details');
897
+ valueGroup = groupedComponent.childNodes[0].childNodes[0].childNodes[1];
898
+ expect(valueGroup.childNodes.length).toEqual(4);
899
+ expect(valueGroup.tagName).toEqual('DD');
900
+ expect(valueGroup.childNodes[0].textContent).toContain('10 Downing Street');
901
+ expect(valueGroup.childNodes[1].textContent).toContain('City of Westminster');
902
+ expect(valueGroup.childNodes[2].textContent).toContain('London');
903
+ expect(valueGroup.childNodes[3].textContent).toContain('SW1A 2AA');
904
+ changeButtonDiv = groupedComponent.childNodes[0].childNodes[0].childNodes[2];
905
+ expect(changeButtonDiv.classList).toContain('govuk-summary-list__actions');
906
+ changeButton = changeButtonDiv.childNodes[0];
907
+ expect(changeButton.tagName).toEqual('A');
908
+ expect(changeButton.textContent).toEqual('Change address details');
909
+ case 21:
910
+ case "end":
911
+ return _context36.stop();
912
+ }
913
+ }, _callee36);
914
+ })));
517
915
  });
518
916
  });